Delen via


read_files functie met tabelwaarde

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 13.3 LTS en hoger

Leest bestanden onder een opgegeven locatie en retourneert de gegevens in tabelvorm.

Ondersteunt het lezenJSON, CSV, XML, , TEXT, BINARYFILE, PARQUET, en AVROORCbestandsindelingen. Kan de bestandsindeling automatisch detecteren en een uniform schema afleiden voor alle bestanden.

Syntaxis

read_files(path [, option_key => option_value ] [...])

Argumenten

Voor deze functie is aanroepen van benoemde parameters vereist voor de optiesleutels.

  • path: A STRING met de URI van de locatie van de gegevens. Ondersteunt het lezen van Azure Data Lake Storage Gen2 (), S3 ('abfss://'s3://) en Google Cloud Storage ('gs://'). Kan globs bevatten. Zie Bestandsdetectie voor meer informatie.
  • option_key: De naam van de optie die u wilt configureren. U moet backticks () for options that contain dots (.`) gebruiken.
  • option_value: een constante uitdrukking om de optie mee in te stellen. Accepteert letterlijke en scalaire functies.

Retouren

Een tabel bestaande uit de gegevens die uit bestanden worden gelezen onder de gegeven path.

Bestandsondekking

read_files kan een afzonderlijk bestand lezen of bestanden lezen onder een opgegeven map. read_files detecteert alle bestanden in de opgegeven map recursief, tenzij er een glob wordt opgegeven, die read_files instrueert om naar een specifiek mappatroon te recursieve.

Mappen of bestanden filteren met globpatronen

Glob-patronen kunnen worden gebruikt voor het filteren van mappen en bestanden wanneer deze in het pad worden opgegeven.

Patroon Beschrijving
? Komt overeen met één teken
* Komt overeen met nul of meer tekens
[abc] Komt overeen met één teken uit de tekenset {a,b,c}.
[a-z] Komt overeen met één teken uit het tekenbereik {a... z}.
[^a] Komt overeen met één teken dat niet afkomstig is uit de tekenset of het bereik {a}. Houd er rekening mee dat het ^ teken direct aan de rechterkant van het openende haakje moet voorkomen.
{ab,cd} Komt overeen met een tekenreeks uit de verzameling {ab, cd}.
{ab,c{de, fh}} Komt overeen met een string uit de reeks {ab, cde, cfh}.

read_files maakt gebruik van de strikte globber van Auto Loader bij het vinden van bestanden met globs. Dit wordt geconfigureerd door de useStrictGlobber optie. Wanneer de strikte globber is uitgeschakeld, worden afsluitende slashes (/) verwijderd en kan een sterpatroon zoals /*/ worden uitgebreid tot het vinden van meerdere mappen. Zie de onderstaande voorbeelden om het verschil in gedrag te zien.

Patroon Bestandspad Strikte globber-functie uitgeschakeld Strikte globber ingeschakeld
/a/b /a/b/c/file.txt Ja Ja
/a/b /a/b_dir/c/file.txt Nee Nee
/a/b /a/b.txt Nee Nee
/a/b/ /a/b.txt Nee Nee
/a/*/c/ /a/b/c/file.txt Ja Ja
/a/*/c/ /a/b/c/d/file.txt Ja Ja
/a/*/d/ /a/b/c/d/file.txt Ja Nee
/a/*/c/ /a/b/x/y/c/file.txt Ja Nee
/a/*/c /a/b/c_file.txt Ja Nee
/a/*/c/ /a/b/c_file.txt Ja Nee
/a/*/c /a/b/cookie/file.txt Ja Nee
/a/b* /a/b.txt Ja Ja
/a/b* /a/b/file.txt Ja Ja
/a/{0.txt,1.txt} /a/0.txt Ja Ja
/a/*/{0.txt,1.txt} /a/0.txt Nee Nee
/a/b/[cde-h]/i/ /a/b/c/i/file.txt Ja Ja

Schema-afleiding

Het schema van de bestanden kan expliciet worden opgegeven read_files met de schema optie. Wanneer het schema niet wordt verstrekt, probeert read_files een uniform schema af te leiden voor de gedetecteerde bestanden, waarvoor alle bestanden moeten worden gelezen, tenzij een LIMIT instructie wordt gebruikt. Zelfs bij het gebruik van een LIMIT query kan een grotere set bestanden dan vereist is, worden gelezen om een representatiever schema van de gegevens te retourneren. Databricks voegt automatisch een LIMIT statement toe aan SELECT queries in notebooks en de SQL-editor als een gebruiker er nog geen heeft opgegeven.

De schemaHints optie kan worden gebruikt om subsets van het afgeleide schema aan te passen. Zie Schemadeductie overschrijven met schemahints voor meer informatie.

Er wordt standaard een rescuedDataColumn gegeven om gegevens te redden die niet overeenkomen met het schema. Zie Wat is de kolom met geredde gegevens? voor meer informatie. U kunt de rescuedDataColumn optie verwijderen door de optie schemaEvolutionMode => 'none'in te stellen.

Partitieschema-afleiding

read_fileskan ook partitioneringskolommen afleiden als bestanden worden opgeslagen onder gepartitioneerde directorieën in Hive-stijl, dat wil zeggen. Als er een schema is opgegeven, gebruiken de gedetecteerde partitiekolommen de typen in de schema. Als de partitiekolommen geen deel uitmaken van de opgegeven schema, worden de afgeleide partitiekolommen genegeerd.

Als er een kolom bestaat in zowel het partitieschema als in de gegevenskolommen, wordt de waarde die uit de partitiewaarde wordt gelezen, gebruikt in plaats van de gegevenswaarde. Als u de waarden uit de map wilt negeren en de gegevenskolom wilt gebruiken, kunt u de lijst met partitiekolommen opgeven in een door komma's gescheiden lijst met de partitionColumns optie.

De partitionColumns optie kan ook worden gebruikt om te instrueren read_files welke gedetecteerde kolommen moeten worden opgenomen in het uiteindelijke uitgestelde schema. Door het opgeven van een lege tekenreeks worden alle partitiekolommen genegeerd.

De schemaHints optie kan ook worden opgegeven om het uitgestelde schema voor een partitiekolom te overschrijven.

De TEXT indelingen en BINARYFILE indelingen hebben een vast schema, maar read_files proberen indien mogelijk ook partitionering voor deze indelingen af te leiden.

Gebruik in streaming-tabellen

read_files kan worden gebruikt in streamingtabellen om bestanden in te laden in Delta Lake. read_files maakt gebruik van automatisch laden wanneer deze wordt gebruikt in een streamingtabelquery. U moet het STREAM trefwoord gebruiken met read_files. Zie Wat is automatisch laadprogramma? voor meer informatie.

Wanneer gebruikt in een streamingquery, read_files gebruikt een voorbeeld van de gegevens om het schema af te leiden en kan het schema evolueren naarmate er meer gegevens worden verwerkt. Zie Schemadeductie en evolutie configureren in AutoLoader voor meer informatie.

Opties

Basismogelijkheden

Optie
format
Type: String
De indeling van het gegevensbestand in het bronpad. Automatisch afgeleid als het niet is opgegeven. Toegestane waarden zijn:

Standaardwaarde: Geen
inferColumnTypes
Typ: Boolean
Of u exacte kolomtypen wilt afleiden bij het gebruik van schemadeductie. Standaard wordt er van kolommen uitgegaan wanneer JSON- en CSV-gegevenssets worden afgeleid. Zie schemadeductie voor meer informatie. Houd er rekening mee dat dit het tegenovergestelde is van de standaardwaarde van automatisch laden.
Standaardwaarde: true
partitionColumns
Type: String
Een door komma's gescheiden lijst met partitiekolommen in Hive-stijl die u wilt afleiden uit de mapstructuur van de bestanden. Partitiekolommen in Hive-stijl zijn sleutel-waardeparen samengevoegd met een gelijkheidsteken zoals
<base-path>/a=x/b=1/c=y/file.format. In dit voorbeeld zijn ade partitiekolommen , ben c. Deze kolommen worden standaard automatisch toegevoegd aan uw schema als u schemadeductie gebruikt en de gegevens uit het <base-path> schema laadt. Als u een schema opgeeft, verwacht Auto Loader dat deze kolommen worden opgenomen in het schema. Als u deze kolommen niet wilt gebruiken als onderdeel van uw schema, kunt u deze kolommen negeren "" . Daarnaast kunt u deze optie gebruiken als u wilt dat kolommen het bestandspad in complexe mapstructuren worden afgeleid, zoals in het onderstaande voorbeeld:
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
Als cloudFiles.partitionColumns als year,month,day wordt opgegeven, zal het terugkeren
year=2022 voor file1.csv, maar de month en day kolommen zijn null.
month en day wordt correct geparseerd voor file2.csv en file3.csv.
Standaardwaarde: Geen
schemaHints
Type: String
Schema-informatie die u tijdens schema-inferentie aan de Auto Loader verstrekt. Zie schemahints voor meer informatie.
Standaardwaarde: Geen
useStrictGlobber
Typ: Boolean
Of u een strikte globber wilt gebruiken die overeenkomt met het standaardgedrag voor globbing van andere bestandsbronnen in Apache Spark. Zie Algemene patronen voor het laden van gegevens voor meer informatie. Beschikbaar in Databricks Runtime 12.2 LTS en hoger. Houd er rekening mee dat dit het tegenovergestelde is van de standaardwaarde voor automatisch laden.
Standaardwaarde: true

Algemene opties

De volgende opties zijn van toepassing op alle bestandsindelingen.

Optie
ignoreCorruptFiles
Typ: Boolean
Of beschadigde bestanden moeten worden genegeerd. Indien waar, zullen de Spark-jobs doorgaan met draaien wanneer er beschadigde bestanden worden aangetroffen en de gelezen inhoud zal nog steeds worden geretourneerd. Zichtbaar als numSkippedCorruptFiles in de
operationMetrics kolom van de geschiedenis van Delta Lake. Beschikbaar in Databricks Runtime 11.3 LTS en hoger.
Standaardwaarde: false
ignoreMissingFiles
Type: Boolean
Of ontbrekende bestanden moeten worden genegeerd. Als dit waar is, zullen de Spark-taken blijven draaien wanneer er ontbrekende bestanden worden aangetroffen en zal de gelezen inhoud nog steeds worden geretourneerd. Beschikbaar in Databricks Runtime 11.3 LTS en hoger.
Standaardwaarde: false voor automatisch laden, true voor COPY INTO (verouderd)
modifiedAfter
Type: Timestamp Stringbijvoorbeeld 2021-01-01 00:00:00.000000 UTC+0
Een optionele tijdstempel voor het opnemen van bestanden met een wijzigingstijdstempel na de opgegeven tijdstempel.
Standaardwaarde: Geen
modifiedBefore
Type: Timestamp Stringbijvoorbeeld 2021-01-01 00:00:00.000000 UTC+0
Een optionele tijdstempel voor het opnemen van bestanden met een wijzigingstijdstempel vóór de opgegeven tijdstempel.
Standaardwaarde: Geen
pathGlobFilter of fileNamePattern
Type: String
Een potentieel globpatroon om bestanden te selecteren. Gelijk aan
PATTERN in COPY INTO (verouderd). fileNamePattern kan worden gebruikt in read_files.
Standaardwaarde: Geen
recursiveFileLookup
Type: Boolean
Of partitiedeductie tijdens schemadeductie moet worden overgeslagen. Dit heeft geen invloed op welke bestanden worden geladen.
Standaardwaarde: false

JSON Opties

Optie
allowBackslashEscapingAnyCharacter
Type: Boolean
Of backslashes toegestaan zijn om karakters die hen opvolgen te ontsnappen. Als dit niet is ingeschakeld, kunnen alleen tekens die expliciet in de JSON-specificatie worden vermeld, worden geëscaped.
Standaardwaarde: false
allowComments
Type: Boolean
Of het gebruik van opmerkingen in java-, C- en C++-stijl ('/', '*'en '//' variëteiten) binnen geparseerde inhoud al dan niet is toegestaan.
Standaardwaarde: false
allowNonNumericNumbers
Type: Boolean
Hiermee wordt aangegeven of de reeks niet-een-getal tokens (NaN) als toegestane zwevende getalwaarden moet worden beschouwd.
Standaardwaarde: true
allowNumericLeadingZeros
Typ: Boolean
Of u wilt toestaan dat integrale getallen beginnen met extra (negeerbare) nullen (bijvoorbeeld 000001).
Standaardwaarde: false
allowSingleQuotes
Type: Boolean
Hiermee wordt aangegeven of het gebruik van enkele aanhalingstekens (apostrof, teken '\') moet worden toegestaan voor het aanhalen van reeksen (namen en tekenreekswaarden).
Standaardwaarde: true
allowUnquotedControlChars
Type: Boolean
Of JSON-tekenreeksen niet-ontsnapte besturingstekens mogen bevatten (ASCII-tekens met een waarde kleiner dan 32, inclusief tab- en regelvoertekens) of niet.
Standaardwaarde: false
allowUnquotedFieldNames
Soort: Boolean
Of u het gebruiken van veldnamen zonder aanhalingstekens wilt toestaan (die wel zijn toegestaan door JavaScript, maar niet door de JSON-specificatie).
Standaardwaarde: false
badRecordsPath
Typ: String
Het pad voor het opslaan van bestanden met informatie over ongeldige JSON-records.
Standaardwaarde: Geen
columnNameOfCorruptRecord
Type: String
De kolom voor het opslaan van records die misvormd zijn en niet kunnen worden geparseerd. Als de mode voor parseren is ingesteld als DROPMALFORMED, is deze kolom leeg.
Standaardwaarde: _corrupt_record
dateFormat
Typ: String
De notatie voor het parseren van datumtekenreeksen.
Standaardwaarde: yyyy-MM-dd
dropFieldIfAllNull
Type: Boolean
Of kolommen van alle null-waarden of lege matrices en structs tijdens schemadeductie moeten worden genegeerd.
Standaardwaarde: false
encoding of charset
Type: String
De naam van de codering van de JSON-bestanden. Zie java.nio.charset.Charset voor een lijst met opties. U kunt niet gebruiken UTF-16 en UTF-32 wanneer multiline is true.
Standaardwaarde: UTF-8
inferTimestamp
Typ: Boolean
Of je al dan niet wilt proberen om tijdstempelreeksen af te leiden als een TimestampType. Wanneer ingesteld op
truekan het afleiden van het schema merkbaar langer duren. U moet cloudFiles.inferColumnTypes inschakelen voor gebruik met Auto Loader.
Standaardwaarde: false
lineSep
Typ: String
Een tekenreeks die zich bevindt tussen twee opeenvolgende JSON-records.
Standaardwaarde: Geen, die betrekking heeft op \r, \r\n, en \n
locale
Typ: String
Een java.util.Locale-id. Beïnvloedt de standaarddatum, tijdstempel en decimale parsering binnen de JSON.
Standaardwaarde: US
mode
Type: String
Parsermodus voor het verwerken van onjuiste records. Eén van 'PERMISSIVE',
'DROPMALFORMED', of 'FAILFAST'.
Standaardwaarde: PERMISSIVE
multiLine
Type: Boolean
Of de JSON-records meerdere regels omvatten.
Standaardwaarde: false
prefersDecimal
Type: Boolean
Probeert tekenreeksen als DecimalType af te leiden in plaats van als float- of double-type, wanneer mogelijk. Je moet ook schemadeductie gebruiken, bijvoorbeeld door het in te schakelen.
inferSchema of door cloudFiles.inferColumnTypes Auto Loader te gebruiken.
Standaardwaarde: false
primitivesAsString
Type: Boolean
Of primitieve typen als getallen en booleaanse waarden moeten worden afgeleid.StringType
Standaardwaarde: false
readerCaseSensitive
Typ: Boolean
Dit specificeert het hoofdlettergevoeligheidsgedrag wanneer rescuedDataColumn ingeschakeld is. Indien waar, redt u de gegevenskolommen waarvan de namen verschillen per geval van het schema; lees anders de gegevens op een niet-hoofdlettergevoelige manier. Beschikbaar in Databricks Runtime
13.3 en hoger.
Standaardwaarde: true
rescuedDataColumn
Type: String
Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd als gevolg van een niet-overeenkomend gegevenstype of niet-overeenkomende schema's (inclusief kolombehuizing) naar een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Raadpleeg Wat is de kolom met geredde gegevens?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
Standaardwaarde: Geen
singleVariantColumn
Typ: String
Of u het hele JSON-document wilt opnemen, geparseerd in één variantkolom met de opgegeven tekenreeks als de naam van de kolom. Als deze optie is uitgeschakeld, worden de JSON-velden opgenomen in hun eigen kolommen.
Standaardwaarde: Geen
timestampFormat
Type: String
De notatie voor het parseren van tijdstempeltekenreeksen.
Standaardwaarde: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Soort: String
De java.time.ZoneId te gebruiken bij het parseren van tijdstempels en datums.
Standaardwaarde: Geen

CSV Opties

Optie
badRecordsPath
Type: String
Het pad om bestanden op te slaan voor het vastleggen van de informatie over foute CSV-records.
Standaardwaarde: Geen
charToEscapeQuoteEscaping
Type: Char
Het teken dat wordt gebruikt om het teken te escapen dat wordt gebruikt voor het escapen van aanhalingstekens. Bijvoorbeeld voor de volgende record: [ " a\\", b ]
  • Als het teken om aan de '\' te ontsnappen niet is gedefinieerd, wordt de record niet geparseerd. De parser leest de tekens [a],[\],["],[,],[ ],[b] en genereert een fout omdat er geen slotcitaat kan worden gevonden.
  • Als het teken om het '\' te escapen gedefinieerd is als '\', wordt het record gelezen met 2 waarden: [a\] en [b].

Standaardwaarde: '\0'
columnNameOfCorruptRecord
Ondersteund voor automatisch laden. Niet ondersteund voor COPY INTO (verouderd).
Soort: String
De kolom voor het opslaan van records die misvormd zijn en niet kunnen worden geparseerd. Als de mode voor parseren is ingesteld als DROPMALFORMED, is deze kolom leeg.
Standaardwaarde: _corrupt_record
comment
Type: Char
Hiermee definieert u het teken dat een regelcommentaar aangeeft wanneer deze wordt gevonden aan het begin van een tekstregel. Hiermee '\0' schakelt u het overslaan van opmerkingen uit.
Standaardwaarde: '\u0000'
dateFormat
Type: String
De notatie voor het parseren van datumtekenreeksen.
Standaardwaarde: yyyy-MM-dd
emptyValue
Type: String
Tekenreeksweergave van een lege waarde.
Standaardwaarde: ""
encoding of charset
Typ: String
De naam van de codering van de CSV-bestanden. Zie java.nio.charset.Charset voor de lijst met opties. UTF-16 en UTF-32 kunnen niet worden gebruikt wanneer multilinetrue is.
Standaardwaarde: UTF-8
enforceSchema
Type: Boolean
Of u het opgegeven of afgeleid schema geforceerd wilt toepassen op de CSV-bestanden. Als de optie is ingeschakeld, worden headers van CSV-bestanden genegeerd. Deze optie wordt standaard genegeerd wanneer u AutoLoader gebruikt om gegevens te redden en schemaontwikkeling mogelijk te maken.
Standaardwaarde: true
escape
Typ: Char
Het escape-teken dat moet worden gebruikt bij het parseren van de gegevens.
Standaardwaarde: '\'
header
Typ: Boolean
Of de CSV-bestanden een koptekst bevatten. Auto Loader gaat ervan uit dat bestanden headers hebben bij het uitstellen van het schema.
Standaardwaarde: false
ignoreLeadingWhiteSpace
Type: Boolean
Of u voorloopspaties voor elke geparseerde waarde wilt negeren.
Standaardwaarde: false
ignoreTrailingWhiteSpace
Type: Boolean
Hiermee wordt aangegeven of u volgspaties voor elke geparseerde waarde wilt negeren.
Standaardwaarde: false
inferSchema
Typ: Boolean
Of u de gegevenstypen van de geparseerde CSV-records wilt afleiden of dat u aanneemt dat alle kolommen van type StringTypezijn. Vereist een extra stap over de gegevens indien ingesteld op true. Voor Auto Loader moet je in plaats daarvan cloudFiles.inferColumnTypes gebruiken.
Standaardwaarde: false
lineSep
Type: String
Een tekstreeks tussen twee opeenvolgende CSV-records.
Standaardwaarde: Geen, die betrekking heeft op \r, \r\n, en \n
locale
Typ: String
Een java.util.Locale-id. Beïnvloedt de standaarddatum, tijdstempel en decimale parsering in het CSV-bestand.
Standaardwaarde: US
maxCharsPerColumn
Type: Int
Maximum aantal tekens dat wordt verwacht van een waarde om te parseren. Kan worden gebruikt om geheugenfouten te voorkomen. Standaard ingesteld op -1, wat betekent dat het onbeperkt is.
Standaardwaarde: -1
maxColumns
Type: Int
De vaste limiet van het aantal kolommen dat een record kan hebben.
Standaardwaarde: 20480
mergeSchema
Type: Boolean
Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen. Standaard ingeschakeld voor Auto Loader bij het afleiden van het schema.
Standaardwaarde: false
mode
Type: String
Parsermodus voor het verwerken van onjuiste records. Eén van 'PERMISSIVE',
'DROPMALFORMED', en 'FAILFAST'.
Standaardwaarde: PERMISSIVE
multiLine
Typ: Boolean
Of de CSV-records meerdere regels omvatten.
Standaardwaarde: false
nanValue
Type: String
De tekenreeksweergave van een niet-een-getalwaarde bij het parseren van FloatType en DoubleType kolommen.
Standaardwaarde: "NaN"
negativeInf
Type: String
De tekenreeksweergave van negatief oneindig bij het parseren van de kolommen FloatType of DoubleType.
Standaardwaarde: "-Inf"
nullValue
Typ: String
Tekenreeksweergave van een null-waarde.
Standaardwaarde: ""
parserCaseSensitive (afgeschaft)
Type: Boolean
Tijdens het lezen van bestanden, of kolommen in de koptekst hoofdlettergevoelig moeten worden uitgelijnd met het schema. Dit is true standaard voor autolaadprogramma's. Kolommen die verschillen qua hoofdlettergebruik, worden in de rescuedDataColumn hersteld indien ingeschakeld. Deze optie is afgeschaft ten gunste van readerCaseSensitive.
Standaardwaarde: false
positiveInf
Typ: String
De tekenreeksweergave van positieve oneindigheid bij het parseren van FloatType of DoubleType kolommen.
Standaardwaarde: "Inf"
preferDate
Type: Boolean
Probeert tekenreeksen te interpreteren als datums in plaats van tijdsbestempelingen wanneer mogelijk. U moet ook schemadeductie gebruiken, ofwel door inferSchema in te schakelen of een andere methode te gebruiken.
cloudFiles.inferColumnTypes met Automatisch Laadsysteem.
Standaardwaarde: true
quote
Type: Char
Het teken dat wordt gebruikt voor het escapen van waarden waarin het veldscheidingsteken deel uitmaakt van de waarde.
Standaardwaarde: "
readerCaseSensitive
Soort: Boolean
Dit specificeert het hoofdlettergevoeligheidsgedrag wanneer rescuedDataColumn ingeschakeld is. Indien waar, redt u de gegevenskolommen waarvan de namen verschillen per geval van het schema; lees anders de gegevens op een niet-hoofdlettergevoelige manier.
Standaardwaarde: true
rescuedDataColumn
Type: String
Of u alle gegevens die niet kunnen worden geparseerd vanwege een mismatch in gegevenstype of schema (inclusief kolomhoofding) in een afzonderlijke kolom wilt verzamelen. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Voor meer informatie, raadpleeg Wat is de kolom met geredde gegevens?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
Standaardwaarde: Geen
sep of delimiter
Type: String
De scheidingstekenreeks tussen kolommen.
Standaardwaarde: ","
skipRows
Typ: Int
Het aantal rijen vanaf het begin van het CSV-bestand dat moet worden genegeerd (inclusief opmerkingen en lege rijen). Als header waar is, wordt de kop de eerste rij die niet overslagen of gecommentarieerd is.
Standaardwaarde: 0
timestampFormat
Typ: String
De notatie voor het parseren van tijdstempeltekenreeksen.
Standaardwaarde: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Soort: String
De java.time.ZoneId te gebruiken bij het parseren van tijdstempels en datums.
Standaardwaarde: Geen
unescapedQuoteHandling
Typ: String
De strategie voor het verwerken van niet-ontsnapte aanhalingstekens. Toegestane opties:
  • STOP_AT_CLOSING_QUOTE: Als er niet-ontsnapte aanhalingstekens in de invoer worden gevonden, registreer het aanhalingsteken en ga verder met het verwerken van de waarde als een aangehaalde waarde, totdat er een sluitend aanhalingsteken wordt gevonden.
  • BACK_TO_DELIMITER: Als er niet-ontsnapte aanhalingstekens worden gevonden in de invoer, kunt u de waarde beschouwen als een niet-gequote waarde. Hierdoor verzamelt de parser alle tekens van de huidige geparseerde waarde totdat het scheidingsteken dat is gedefinieerd door sep is gevonden. Als er geen scheidingsteken in de waarde wordt gevonden, blijft de parser tekens uit de invoer accumuleren totdat een scheidingsteken of regeleinde is gevonden.
  • STOP_AT_DELIMITER: Als er niet-ontsnapte aanhalingstekens worden gevonden in de invoer, kunt u de waarde beschouwen als een niet-gequote waarde. Hierdoor verzamelt de parser alle tekens totdat het scheidingsteken dat is gedefinieerd door sep of een regeleinde in de invoer wordt gevonden.
  • SKIP_VALUE: Als er niet-gebeeldde aanhalingstekens worden gevonden in de invoer, wordt de inhoud die voor de opgegeven waarde wordt geparseerd overgeslagen (totdat het volgende scheidingsteken is gevonden) en wordt de waarde die is ingesteld in nullValue in plaats daarvan geproduceerd.
  • RAISE_ERROR: Als er niet-ontsnapte aanhalingstekens in de invoer gevonden worden, is een
    TextParsingException wordt geworpen.

Standaardwaarde: STOP_AT_DELIMITER

XML Opties

Optie Beschrijving Omvang
rowTag De rijtag van de XML-bestanden die moeten worden behandeld als een rij. In het voorbeeld-XML <books> <book><book>...<books>is bookde juiste waarde. Dit is een vereiste optie. gelezen
samplingRatio Definieert een fractie van rijen die worden gebruikt voor schemadeductie. Ingebouwde XML-functies negeren deze optie. Standaard: 1.0. lezen
excludeAttribute Of kenmerken in elementen moeten worden uitgesloten. Standaard: false. gelezen
mode Modus voor het verwerken van beschadigde records tijdens het parseren.
PERMISSIVE: Voor beschadigde records plaatst u de ongeldige tekenreeks in een veld dat is geconfigureerd door columnNameOfCorruptRecorden stelt u onjuiste velden in op null. Als u beschadigde records wilt behouden, kunt u een string typeveld met de naam columnNameOfCorruptRecord instellen in een door de gebruiker gedefinieerd schema. Als een schema het veld niet heeft, worden beschadigde records verwijderd tijdens het parseren. Wanneer een schema wordt afgeleid, voegt de parser impliciet een columnNameOfCorruptRecord-veld toe in een uitvoerschema.
DROPMALFORMED: Hiermee worden beschadigde records genegeerd. Deze modus wordt niet ondersteund voor ingebouwde XML-functies.
FAILFAST: Genereert een uitzondering wanneer de parser beschadigde records tegenkomt.
gelezen
inferSchema Wanneer true, wordt geprobeerd om een geschikt type af te leiden voor elke resulterende DataFrame-kolom. Als false, zijn alle resulterende kolommen van string type. Standaard:
true. Ingebouwde XML-functies negeren deze optie.
lezen
columnNameOfCorruptRecord Hiermee kunt u de naam van het nieuwe veld wijzigen dat een ongeldige tekenreeks bevat die is gemaakt door
PERMISSIVE modus. Standaard: spark.sql.columnNameOfCorruptRecord.
lezen
attributePrefix Het voorvoegsel voor kenmerken om kenmerken te onderscheiden van elementen. Dit is het voorvoegsel voor veldnamen. Standaard is _. Kan leeg zijn voor het lezen van XML, maar niet voor schrijven. lezen, schrijven
valueTag De tag die wordt gebruikt voor de tekengegevens in elementen die ook kenmerk(en) of subelementen bevatten. Gebruiker kan het valueTag veld in het schema opgeven of het wordt automatisch toegevoegd tijdens schemadeductie wanneer tekengegevens aanwezig zijn in elementen met andere elementen of kenmerken. Standaardwaarde: _VALUE lezen, schrijven
encoding Voor het lezen decodeert u de XML-bestanden op basis van het opgegeven coderingstype. Voor schrijven geeft u codering (charset) van opgeslagen XML-bestanden op. Ingebouwde XML-functies negeren deze optie. Standaard: UTF-8. lezen, schrijven
ignoreSurroundingSpaces Hiermee bepaalt u of omringende witte spaties van waarden die worden gelezen, overgeslagen moeten worden. Standaard: true. Karaktergegevens die alleen uit witruimte bestaan worden genegeerd. lezen
rowValidationXSDPath Pad naar een optioneel XSD-bestand dat wordt gebruikt om de XML voor elke rij afzonderlijk te valideren. Rijen die bij validatie falen, worden behandeld als parseerfouten, zoals eerder vermeld. De XSD heeft verder geen invloed op het verstrekte of afgeleide schema. lezen
ignoreNamespace Als true, worden de voorvoegsels van naamruimten op XML-elementen en -kenmerken genegeerd. Tags <abc:author> en <def:author>, bijvoorbeeld, worden behandeld alsof ze alleen <author>zijn. Naamruimten kunnen niet worden genegeerd op het rowTag element, alleen op de leesbare kindelementen. XML-parsering is niet naamruimtebewust, zelfs niet als false. Standaard: false. gelezen
timestampFormat Aangepaste tekenreeks voor tijdstempelnotatie die de datum/tijd-patroonnotatie volgt. Dit is van toepassing op timestamp het type. Standaard: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. lezen, schrijven
timestampNTZFormat Aangepaste opmaakreeks voor tijdstempel zonder tijdzone volgens het datetime-patroon. Dit is van toepassing op het type TimestampNTZType. Standaardinstelling:
yyyy-MM-dd'T'HH:mm:ss[.SSS]
lezen, schrijven
dateFormat Aanpasbare datumnotatiereeks die het datum/tijd-patroon volgt. Dit is van toepassing op het datumtype. Standaard: yyyy-MM-dd. lezen, schrijven
locale Hiermee stelt u een locale in als taalcode in IETF BCP 47-indeling. Wordt bijvoorbeeld locale gebruikt tijdens het parseren van datums en tijdstempels. Standaard: en-US. gelezen
rootTag Hoofdtag van de XML-bestanden. De juiste waarde in <books> <book><book>...</books> is bijvoorbeeld books. U kunt basiskenmerken opnemen door een waarde op te geven zoals books foo="bar". Standaard: ROWS. schrijven
declaration Inhoud van XML-declaratie die moet worden geschreven aan het begin van elk XML-uitvoerbestand, vóór de rootTag. Bijvoorbeeld, een waarde van foo veroorzaakt dat <?xml foo?> wordt geschreven. Instellen op een lege tekenreeks om te onderdrukken. Standaardwaarde: version="1.0"
encoding="UTF-8" standalone="yes".
schrijven
arrayElementName De naam van het XML-element dat elk element van een kolom met matrixwaarden omsluit bij het schrijven. Standaard: item. schrijven
nullValue Hiermee stelt u de tekenreeksweergave van een null-waarde in. Standaard: tekenreeks null. Als dit het geval is null, schrijft de parser geen kenmerken en elementen voor velden. lezen, schrijven
compression Compressiecode die moet worden gebruikt bij het opslaan in een bestand. Dit kan een van de bekende niet-hoofdlettergevoelige verkorte namen zijn (none, bzip2, gziplz4en snappy
deflate). Ingebouwde XML-functies negeren deze optie. Standaard: none.
schrijven
validateName Als dit waar is, wordt er een fout opgeworpen bij een validatiefout van XML-elementnamen. SQL-veldnamen kunnen bijvoorbeeld spaties bevatten, maar XML-elementnamen kunnen dat niet. Standaard:
true.
schrijven
readerCaseSensitive Hiermee geeft u het hoofdlettergevoeligheidsgedrag op wanneer rescuedDataColumn is ingeschakeld. Indien waar, redt u de gegevenskolommen waarvan de namen verschillen per geval van het schema; lees anders de gegevens op een niet-hoofdlettergevoelige manier. Standaard: true. gelezen
rescuedDataColumn Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege een niet-overeenkomend gegevenstype en niet-overeenkomende schema's (inclusief kolombehuizing) naar een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Voor meer informatie, zie Wat is de kolom met geredde gegevens?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
Standaard: Geen.
lezen

PARQUET Opties

Optie
datetimeRebaseMode
Type: String
Hiermee bepaalt u de herbepaling van de DATUM- en TIJDSTEMPEL-waarden tussen de Juliaanse en Proleptisch Gregoriaanse kalenders. Toegestane waarden: EXCEPTION, LEGACYen
CORRECTED.
Standaardwaarde: LEGACY
int96RebaseMode
Type: String
Hiermee bepaalt u de rebasing van de INT96-tijdstempelwaarden tussen Julian- en Proleptische Gregoriaanse kalenders. Toegestane waarden: EXCEPTION, LEGACYen
CORRECTED.
Standaardwaarde: LEGACY
mergeSchema
Type: Boolean
Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen.
Standaardwaarde: false
readerCaseSensitive
Typ: Boolean
Dit specificeert het hoofdlettergevoeligheidsgedrag wanneer rescuedDataColumn ingeschakeld is. Indien waar, redt u de gegevenskolommen waarvan de namen verschillen per geval van het schema; lees anders de gegevens op een niet-hoofdlettergevoelige manier.
Standaardwaarde: true
rescuedDataColumn
Type: String
Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege: een gegevenstype komt niet overeen en het schema komt niet overeen (inclusief kolombehuizing) in een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Voor meer informatie, raadpleeg Wat is de kolom met geredde gegevens?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
Standaardwaarde: Geen

AVRO Opties

Optie
avroSchema
Type: String
Een optioneel schema in Avro-indeling dat door een gebruiker is aangeleverd. Bij het lezen van Avro kan deze optie worden ingesteld op een ontwikkeld schema, dat compatibel is maar anders is met het werkelijke Avro-schema. Het deserialisatieschema is consistent met het ontwikkelde schema. Als u bijvoorbeeld een ontwikkeld schema instelt dat één extra kolom met een standaardwaarde bevat, bevat het leesresultaat ook de nieuwe kolom.
Standaardwaarde: Geen
datetimeRebaseMode
Type: String
Hiermee bepaalt u de herbepaling van de DATUM- en TIJDSTEMPEL-waarden tussen de Juliaanse en Proleptisch Gregoriaanse kalenders. Toegestane waarden: EXCEPTION, LEGACYen
CORRECTED.
Standaardwaarde: LEGACY
mergeSchema
Type: Boolean
Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen.
mergeSchema Bij Avro worden gegevenstypen niet versoepeld.
Standaardwaarde: false
readerCaseSensitive
Typ: Boolean
Dit specificeert het hoofdlettergevoeligheidsgedrag wanneer rescuedDataColumn ingeschakeld is. Indien waar, redt u de gegevenskolommen waarvan de namen verschillen per geval van het schema; lees anders de gegevens op een niet-hoofdlettergevoelige manier.
Standaardwaarde: true
rescuedDataColumn
Typ: String
Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege: een gegevenstype komt niet overeen en het schema komt niet overeen (inclusief kolombehuizing) in een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
Voor meer informatie, raadpleeg Wat is de kolom met geredde gegevens?.
Standaardwaarde: Geen

BINARYFILE Opties

Binaire bestanden hebben geen extra configuratieopties.

TEXT Opties

Optie
encoding
Typ: String
De naam van de codering van de tekstbestanden. Zie java.nio.charset.Charset voor een lijst met opties.
Standaardwaarde: UTF-8
lineSep
Typ: String
Een tekenreeks tussen twee opeenvolgende TEKST-records.
Standaardwaarde: Geen, die betrekking heeft op \ren \r\n\n
wholeText
Type: Boolean
Of u een bestand als één record wilt lezen.
Standaardwaarde: false

ORC Opties

Optie
mergeSchema
Type: Boolean
Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen.
Standaardwaarde: false

Streamingopties

Deze opties zijn van toepassing wanneer u een read_files of streamingquery met gebruikt.

Optie
allowOverwrites
Typ: Boolean
Of bestanden die zijn gewijzigd na detectie opnieuw moeten worden verwerkt. De meest recente beschikbare versie van het bestand wordt verwerkt tijdens een vernieuwing als het bestand is gewijzigd sinds de laatste geslaagde begintijd van de vernieuwingsquery.
Standaardwaarde: false
includeExistingFiles
Type: Boolean
Of u bestaande bestanden in het invoerpad voor stroomverwerking wilt opnemen of alleen nieuwe bestanden wilt verwerken die binnenkomen na de eerste installatie. Deze optie wordt alleen geëvalueerd wanneer u een stream voor de eerste keer start. Als u deze optie wijzigt nadat de stream opnieuw is opgestart, heeft dit geen effect.
Standaardwaarde: true
maxBytesPerTrigger
Type: Byte String
Het maximum aantal nieuwe bytes dat in elke trigger moet worden verwerkt. U kunt een bytetekenreeks opgeven, zoals 10g om elke microbatch te beperken tot 10 GB aan gegevens. Dit is een zacht maximum. Als u bestanden hebt die elk 3 GB zijn, verwerkt Azure Databricks 12 GB in een microbatch. Wanneer Azure Databricks samen met maxFilesPerTrigger wordt gebruikt, verbruikt Azure Databricks tot de ondergrens van maxFilesPerTrigger of maxBytesPerTrigger, afhankelijk van welke het eerst wordt bereikt.
Opmerking: Voor streamingtabellen die zijn gemaakt in serverloze SQL-warehouses mogen deze optie en maxFilesPerTrigger niet worden ingesteld, om gebruik te maken van dynamisch toegangsbeheer. Dit schaalt mee met de workloadgrootte en de serverloze compute-resources, zodat u de beste latentie en prestaties behaalt.
Standaardwaarde: Geen
maxFilesPerTrigger
Typ: Integer
Het maximum aantal nieuwe bestanden dat in elke trigger moet worden verwerkt. Wanneer Azure Databricks samen met maxBytesPerTrigger wordt gebruikt, verbruikt Azure Databricks tot de ondergrens van maxFilesPerTrigger of maxBytesPerTrigger, afhankelijk van welke het eerst wordt bereikt.
Opmerking: Voor streamingtabellen die zijn gemaakt in serverloze SQL-warehouses mogen deze optie en maxBytesPerTrigger niet worden ingesteld, om gebruik te maken van dynamisch toegangsbeheer. Dit schaalt mee met de workloadgrootte en de serverloze compute-resources, zodat u de beste latentie en prestaties behaalt.
Standaardwaarde: 1000
schemaEvolutionMode
Typ: String
De modus voor het bijwerken van het schema wanneer nieuwe kolommen in de gegevens worden ontdekt. Standaard worden kolommen afgeleid als tekenreeksen bij het afleiden van JSON-gegevenssets. Zie de ontwikkeling van schema's voor meer informatie. Deze optie is niet van toepassing op text en binaryFile bestanden.
Standaardwaarde: "addNewColumns" wanneer er geen schema wordt opgegeven.
"none" anders.
schemaLocation
Type: String
De locatie voor het opslaan van het afgeleid schema en de volgende wijzigingen. Zie schemadeductie voor meer informatie. De schemalocatie is niet vereist wanneer deze wordt gebruikt in een streamingtabelquery.
Standaardwaarde: Geen

Voorbeelden

-- Reads the files available in the given path. Auto-detects the format and schema of the data.
> SELECT * FROM read_files('abfss://container@storageAccount.dfs.core.windows.net/base/path');

-- Reads the headerless CSV files in the given path with the provided schema.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv',
    schema => 'id int, ts timestamp, event string');

-- Infers the schema of CSV files with headers. Because the schema is not provided,
-- the CSV files are assumed to have headers.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv')

-- Reads files that have a csv suffix.
> SELECT * FROM read_files('s3://bucket/path/*.csv')

-- Reads a single JSON file
> SELECT * FROM read_files(
    'abfss://container@storageAccount.dfs.core.windows.net/path/single.json')

-- Reads JSON files and overrides the data type of the column `id` to integer.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'json',
    schemaHints => 'id int')

-- Reads files that have been uploaded or modified yesterday.
> SELECT * FROM read_files(
    'gs://my-bucket/avroData',
    modifiedAfter => date_sub(current_date(), 1),
    modifiedBefore => current_date())

-- Creates a Delta table and stores the source file path as part of the data
> CREATE TABLE my_avro_data
  AS SELECT *, _metadata.file_path
  FROM read_files('gs://my-bucket/avroData')

-- Creates a streaming table that processes files that appear only after the table's creation.
-- The table will most likely be empty (if there's no clock skew) after being first created,
-- and future refreshes will bring new data in.
> CREATE OR REFRESH STREAMING TABLE avro_data
  AS SELECT * FROM STREAM read_files('gs://my-bucket/avroData', includeExistingFiles => false);