read_files
tabelwaarde, functie
Van toepassing op: Databricks SQL 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 AVRO
ORC
bestandsindelingen.
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
: ASTRING
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 (') gebruiken voor opties die puntjes (.
) bevatten. -
option_value
: Een constante expressie om de optie in te stellen. Accepteert letterlijke en scalaire functies.
Retouren
Een tabel die bestaat uit de gegevens uit bestanden die onder de opgegeven path
bestanden worden gelezen.
Bestandsdetectie
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, waardoor wordt geïnstrueerd read_files
om recurse in een specifiek mappatroon.
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 rechts van de haak openen moet plaatsvinden. |
{ab,cd} |
Komt overeen met een tekenreeks uit de reeks {ab, cd}. |
{ab,c{de, fh}} |
Komt overeen met een tekenreeks uit de reeks {ab, cde, cfh}. |
read_files
maakt gebruik van de strikte globber van autolader bij het detecteren van bestanden met globs. Dit wordt geconfigureerd door de useStrictGlobber
optie. Wanneer de strikte globber is uitgeschakeld, worden afsluitende slashes (/
) verwijderd en wordt een sterpatroon, zoals /*/
het detecteren van meerdere mappen, uitgebreid. Zie de onderstaande voorbeelden om het verschil in gedrag te zien.
Patroon | Bestandspad | Strikte globber 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-deductie
Het schema van de bestanden kan expliciet worden opgegeven read_files
met de schema
optie. Wanneer het schema niet wordt opgegeven, read_files
probeert u 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
instructie toe voor SELECT
query's in notebooks en de SQL-editor als een gebruiker er nog geen heeft opgegeven.
De schemaHints
optie kan worden gebruikt om subsets van het uitgestelde schema op te lossen. 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.
Partitieschemadeductie
read_files
kan ook partitioneringskolommen afleiden als bestanden worden opgeslagen onder gepartitioneerde Mappen in Hive-stijl, dat wil /column_name=column_value/
gezegd. 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 uitgestelde 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. Als u een lege tekenreeks opgeeft, 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 streamingtabellen
read_files
kan worden gebruikt in streamingtabellen om bestanden op te nemen 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 u in een streamingquery wordt gebruikt, read_files
gebruikt u een voorbeeld van de gegevens om het schema af te leiden en kan het schema worden ontwikkeld naarmate er meer gegevens worden verwerkt. Zie Schemadeductie en evolutie configureren in AutoLoader voor meer informatie.
Opties
- Basisopties
- Algemene opties
-
JSON
Opties -
CSV
Opties -
XML
Opties -
PARQUET
Opties -
AVRO
Opties -
BINARYFILE
Opties -
TEXT
Opties -
ORC
Opties - Streamingopties
Basisopties
Optie |
---|
format Type: String De indeling van het gegevensbestand in het bronpad. Automatisch afgeleid als deze niet is opgegeven. Toegestane waarden zijn: - avro : Avro-bestand- binaryFile : Binair bestand- csv : CSV-bestanden lezen- json : JSON-bestand- orc : ORC-bestand- parquet : Parquet-bestanden lezen met Azure Databricks- text : Tekstbestanden- xml : XML-bestanden lezen en schrijvenStandaardwaarde: Geen |
inferColumnTypes Type: Boolean Of u exacte kolomtypen wilt afleiden bij het gebruik van schemadeductie. Standaard worden kolommen afgeleid bij het uitstellen van JSON- en CSV-gegevenssets. 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 gecombineerd door een gelijkheidsteken zoals <base-path>/a=x/b=1/c=y/file.format . In dit voorbeeld zijn a de partitiekolommen , b en 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 cloudFiles.partitionColumns Opgeven zoals year,month,day wordt geretourneerdyear=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 schemadeductie aan autolaadprogramma's verstrekt. Zie schemahints voor meer informatie. Standaardwaarde: Geen |
useStrictGlobber Type: 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 Type: Boolean Of beschadigde bestanden moeten worden genegeerd. Indien waar, worden de Spark-taken nog steeds uitgevoerd wanneer er beschadigde bestanden worden aangeroepen en de inhoud die is gelezen nog steeds wordt geretourneerd. Waarneembaar zoals numSkippedCorruptFiles in deoperationMetrics kolom van de Delta Lake-geschiedenis. Beschikbaar in Databricks Runtime 11.3 LTS en hoger.Standaardwaarde: false |
ignoreMissingFiles Type: Boolean Of ontbrekende bestanden moeten worden genegeerd. Indien waar, blijven de Spark-taken worden uitgevoerd wanneer er ontbrekende bestanden optreden en wordt de inhoud die is gelezen nog steeds geretourneerd. Beschikbaar in Databricks Runtime 11.3 LTS en hoger. Standaardwaarde: false (true voor COPY INTO ) |
modifiedAfter Type: Timestamp String bijvoorbeeld 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 String bijvoorbeeld 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 kiezen. Gelijk aan PATTERN in COPY INTO .
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 mogen ontsnappen aan elk teken dat slaagt. Als dit niet is ingeschakeld, kunnen alleen tekens die expliciet worden vermeld door de JSON-specificatie, worden ontsnapt. 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 set tokens zonder getal ( NaN ) mag worden toegestaan als juridische zwevende getalwaarden.Standaardwaarde: true |
allowNumericLeadingZeros Type: 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 gebruikt voor het aanhalen van tekenreeksen (namen en tekenreekswaarden).Standaardwaarde: true |
allowUnquotedControlChars Type: Boolean Of JSON-tekenreeksen niet-gescaped besturingstekens bevatten (ASCII-tekens met een waarde kleiner dan 32, inclusief tab- en regelinvoertekens) of niet. Standaardwaarde: false |
allowUnquotedFieldNames Type: Boolean Of u het gebruik van niet-aanhalingeerde veldnamen wilt toestaan (die zijn toegestaan door JavaScript, maar niet door de JSON-specificatie). Standaardwaarde: false |
badRecordsPath Type: String Het pad naar het opslaan van bestanden voor het vastleggen van de informatie over ongeldige JSON-records. Standaardwaarde: Geen |
columnNameOfCorruptRecord Type: String De kolom voor het opslaan van records die ongeldig zijn en die niet kunnen worden geparseerd. Als het mode voor parseren is ingesteld als DROPMALFORMED , is deze kolom leeg.Standaardwaarde: _corrupt_record |
dateFormat Type: 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 Type: Boolean Of u tijdstempeltekenreeksen wilt afleiden als een TimestampType . Wanneer ingesteld optrue , kan het aanzienlijk langer duren voordat schemadeductie aanzienlijk langer duurt. U moet inschakelen cloudFiles.inferColumnTypes voor gebruik met automatisch laden.Standaardwaarde: false |
lineSep Type: String Een tekenreeks tussen twee opeenvolgende JSON-records. Standaardwaarde: Geen, die betrekking heeft \r op , \r\n en \n |
locale Type: 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 af te stellen zoals DecimalType in plaats van float of dubbel type, indien mogelijk. U moet ook schemadeductie gebruiken door het inschakelen vaninferSchema of met cloudFiles.inferColumnTypes automatisch laadprogramma gebruiken.Standaardwaarde: false |
primitivesAsString Type: Boolean Of primitieve typen als getallen en booleaanse waarden moeten worden afgeleid. StringType Standaardwaarde: false |
readerCaseSensitive Type: Boolean Hiermee geeft u het hoofdlettergevoeligheidsgedrag op wanneer rescuedDataColumn deze 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. Beschikbaar in Databricks Runtime13.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 voor meer informatie. Standaardwaarde: Geen |
singleVariantColumn Type: 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 tijdstempeltekenreeksen parseren. Standaardwaarde: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Type: String De java.time.ZoneId te gebruiken bij het parseren van tijdstempels en datums.Standaardwaarde: Geen |
CSV
Opties
Optie |
---|
badRecordsPath Type: String Het pad naar het opslaan van bestanden voor het vastleggen van de informatie over ongeldige CSV-records. Standaardwaarde: Geen |
charToEscapeQuoteEscaping Type: Char Het teken dat wordt gebruikt om te ontsnappen aan het teken dat wordt gebruikt voor escape-aanhalingstekens. Bijvoorbeeld voor de volgende record: [ " a\\", b ] - Als het teken om te ontsnappen aan het '\' teken niet is gedefinieerd, wordt de record niet geparseerd. De parser leest tekens en [a],[\],["],[,],[ ],[b] genereert een fout omdat er geen slotcitaat kan worden gevonden.- Als het teken om te ontsnappen aan de '\' is gedefinieerd, '\' wordt de record gelezen met 2 waarden: [a\] en [b] .Standaardwaarde: '\0' |
columnNameOfCorruptRecord Ondersteund voor automatisch laden. Niet ondersteund voor COPY INTO .Type: String De kolom voor het opslaan van records die ongeldig zijn en die niet kunnen worden geparseerd. Als het 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 Type: 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 kan niet worden gebruikt wanneer multiline .true 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 Type: Char Het escape-teken dat moet worden gebruikt bij het parseren van de gegevens. Standaardwaarde: '\' |
header Type: 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 Type: Boolean Of u de gegevenstypen van de geparseerde CSV-records wilt afleiden of ervan wilt uitgaan dat alle kolommen van StringType zijn. Vereist een extra pass over de gegevens indien ingesteld op true . Gebruik in plaats daarvan voor autolaadprogramma's cloudFiles.inferColumnTypes .Standaardwaarde: false |
lineSep Type: String Een tekenreeks tussen twee opeenvolgende CSV-records. Standaardwaarde: Geen, die betrekking heeft \r op , \r\n en \n |
locale Type: 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 -1 op , wat onbeperkt betekent.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 automatisch laden bij het uitstellen 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 Type: Boolean Of de CSV-records meerdere regels omvatten. Standaardwaarde: false |
nanValue Type: String De tekenreeksweergave van een niet-een-getalwaarde bij het parseren FloatType en DoubleType kolommen.Standaardwaarde: "NaN" |
negativeInf Type: String De tekenreeksweergave van negatief oneindigheid bij het parseren FloatType of DoubleType kolommen.Standaardwaarde: "-Inf" |
nullValue Type: String Tekenreeksweergave van een null-waarde. Standaardwaarde: "" |
parserCaseSensitive (afgeschaft)Type: Boolean Tijdens het lezen van bestanden, of kolommen moeten worden uitgelijnd in de koptekst met het schema, hoofdlettergevoelig. Dit is true standaard voor autolaadprogramma's. Kolommen die per geval verschillen, worden in de rescuedDataColumn indien ingeschakelde kolom gered. Deze optie is afgeschaft ten gunste van readerCaseSensitive .Standaardwaarde: false |
positiveInf Type: String De tekenreeksweergave van positief oneindigheid bij het parseren FloatType of DoubleType kolommen.Standaardwaarde: "Inf" |
preferDate Type: Boolean Probeert tekenreeksen af te stellen als datums in plaats van tijdstempel, indien mogelijk. U moet ook schemadeductie gebruiken door het inschakelen inferSchema of gebruiken vancloudFiles.inferColumnTypes met automatisch laadprogramma.Standaardwaarde: true |
quote Type: Char Het teken dat wordt gebruikt voor het ontsnappen van waarden waarbij het veldscheidingsteken deel uitmaakt van de waarde. Standaardwaarde: " |
readerCaseSensitive Type: Boolean Hiermee geeft u het hoofdlettergevoeligheidsgedrag op wanneer rescuedDataColumn deze 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.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. Raadpleeg wat is de kolom met geredde gegevens voor meer informatie. Standaardwaarde: Geen |
sep of delimiter Type: String De scheidingstekenreeks tussen kolommen. Standaardwaarde: "," |
skipRows Type: Int Het aantal rijen vanaf het begin van het CSV-bestand dat moet worden genegeerd (inclusief opmerkingen en lege rijen). Als header waar is, is de kop de eerste niet-overgeslagen en niet-commentaarrij.Standaardwaarde: 0 |
timestampFormat Type: String De notatie voor tijdstempeltekenreeksen parseren. Standaardwaarde: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Type: String De java.time.ZoneId te gebruiken bij het parseren van tijdstempels en datums.Standaardwaarde: Geen |
unescapedQuoteHandling Type: String De strategie voor het verwerken van ongezichtige koersen. Toegestane opties: - STOP_AT_CLOSING_QUOTE : Als er onopgezichtige aanhalingstekens worden gevonden in de invoer, verzamelt u het aanhalingsteken en gaat u verder met het parseren van de waarde als een aanhalingsteken, totdat er een aanhalingsteken wordt gevonden.- BACK_TO_DELIMITER : Als er onopgemerkte aanhalingstekens worden gevonden in de invoer, kunt u de waarde beschouwen als een niet-aanhalingsteken. 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 onopgemerkte aanhalingstekens worden gevonden in de invoer, kunt u de waarde beschouwen als een niet-aanhalingsteken. Hierdoor wordt de parser alle tekens verzameld totdat het scheidingsteken dat is gedefinieerd door sep , of een regeleinde wordt gevonden in de invoer.- SKIP_VALUE : Als niet-gescaped aanhalingstekens in de invoer worden gevonden, wordt de inhoud die voor de opgegeven waarde wordt geparseerd (totdat het volgende scheidingsteken is gevonden) en wordt de waardeset nullValue geproduceerd.- RAISE_ERROR : Als er ongezichtige aanhalingstekens worden gevonden in de invoer, is eenTextParsingException zal worden gegooid.Standaardwaarde: STOP_AT_DELIMITER |
XML
Opties
Optie | Beschrijving | Bereik |
---|---|---|
rowTag |
De rijtag van de XML-bestanden die moeten worden behandeld als een rij. In het voorbeeld-XML <books> <book><book>...<books> is book de 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 . |
gelezen |
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 columnNameOfCorruptRecord en stelt u onjuiste velden in op null . Als u beschadigde records wilt behouden, kunt u een string typeveld instellen met de naam columnNameOfCorruptRecord in een door de gebruiker gedefinieerd schema. Als een schema het veld niet heeft, worden beschadigde records verwijderd tijdens het parseren. Bij het uitstellen van een schema voegt de parser impliciet een columnNameOfCorruptRecord veld toe aan een uitvoerschema.DROPMALFORMED : Hiermee worden beschadigde records genegeerd. Deze modus wordt niet ondersteund voor ingebouwde XML-functies.FAILFAST : Genereert een uitzondering wanneer de parser voldoet aan beschadigde records. |
gelezen |
inferSchema |
Als true , wordt geprobeerd een geschikt type voor elke resulterende DataFrame-kolom af te leiden. Als false alle resulterende kolommen van het string type zijn. Standaardinstelling:true . Ingebouwde XML-functies negeren deze optie. |
gelezen |
columnNameOfCorruptRecord |
Hiermee kunt u de naam van het nieuwe veld wijzigen dat een ongeldige tekenreeks bevat die is gemaakt doorPERMISSIVE wijze. Standaard: spark.sql.columnNameOfCorruptRecord . |
gelezen |
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 onderliggende elementen 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 de omringende spaties van waarden die worden gelezen, moeten worden overgeslagen. Standaard: true . Alleen-witruimtegegevens worden genegeerd. |
gelezen |
rowValidationXSDPath |
Pad naar een optioneel XSD-bestand dat wordt gebruikt om de XML voor elke rij afzonderlijk te valideren. Rijen die niet kunnen worden gevalideerd, worden behandeld als parseringsfouten zoals hierboven. De XSD is anders niet van invloed op het opgegeven schema of afgeleid. | gelezen |
ignoreNamespace |
Als true de voorvoegsels van naamruimten op XML-elementen en -kenmerken worden 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 de leesliggende onderliggende elementen. 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 notatietekenreeks voor tijdstempel zonder tijdzone die de notatie datum/tijd volgt. Dit is van toepassing op het type TimestampNTZType. Standaardinstelling:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
lezen, schrijven |
dateFormat |
Tekenreeks voor aangepaste datumnotatie die de datum/tijd-patroonnotatie volgt. Dit is van toepassing op het datumtype. Standaard: yyyy-MM-dd . |
lezen, schrijven |
locale |
Hiermee stelt u een landinstelling in als taaltag 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 is <books> <book><book>...</books> bijvoorbeeld books in . 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 oorzaken <?xml foo?> die worden geschreven. Ingesteld op een lege tekenreeks die moet worden onderdrukt. 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 , gzip lz4 en snappy deflate ). Ingebouwde XML-functies negeren deze optie. Standaard: none . |
schrijven |
validateName |
Als waar is, treedt er een fout op bij validatiefout voor XML-elementnamen. SQL-veldnamen kunnen bijvoorbeeld spaties bevatten, maar namen van XML-elementen kunnen niet worden gebruikt. Standaardinstelling: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. Zie Wat is de kolom met geredde gegevens voor meer informatie. Standaard: Geen. | gelezen |
PARQUET
Opties
Optie |
---|
datetimeRebaseMode Type: String Hiermee bepaalt u de rebasing van de DATUM- en TIJDSTEMPEL-waarden tussen Julian- en Proleptische Gregoriaanse kalenders. Toegestane waarden: EXCEPTION , LEGACY enCORRECTED .Standaardwaarde: LEGACY |
int96RebaseMode Type: String Hiermee bepaalt u de rebasing van de INT96-tijdstempelwaarden tussen Julian- en Proleptische Gregoriaanse kalenders. Toegestane waarden: EXCEPTION , LEGACY enCORRECTED .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 Type: Boolean Hiermee geeft u het hoofdlettergevoeligheidsgedrag op wanneer rescuedDataColumn deze 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.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. Raadpleeg wat is de kolom met geredde gegevens voor meer informatie. Standaardwaarde: Geen |
AVRO
Opties
Optie |
---|
avroSchema Type: String Optioneel schema dat wordt geleverd door een gebruiker in Avro-indeling. 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 rebasing van de DATUM- en TIJDSTEMPEL-waarden tussen Julian- en Proleptische Gregoriaanse kalenders. Toegestane waarden: EXCEPTION , LEGACY enCORRECTED .Standaardwaarde: LEGACY |
mergeSchema Type: Boolean Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen. mergeSchema Voor Avro worden gegevenstypen niet versoepelingd.Standaardwaarde: false |
readerCaseSensitive Type: Boolean Hiermee geeft u het hoofdlettergevoeligheidsgedrag op wanneer rescuedDataColumn deze 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.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. Raadpleeg wat is de kolom met geredde gegevens voor meer informatie. Standaardwaarde: Geen |
BINARYFILE
Opties
Binaire bestanden hebben geen extra configuratieopties.
TEXT
Opties
Optie |
---|
encoding Type: String De naam van de codering van de TEKSTBESTANDen. Zie java.nio.charset.Charset voor een lijst met opties.Standaardwaarde: UTF-8 |
lineSep Type: String Een tekenreeks tussen twee opeenvolgende TEKST-records. Standaardwaarde: Geen, die betrekking heeft op \r en \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 read_files
een streamingtabel of streamingquery gebruikt.
Optie |
---|
allowOverwrites Type: 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, bijvoorbeeld 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 wordt maxFilesPerTrigger gebruikt, verbruikt azure databricks tot de ondergrens van of maxFilesPerTrigger , afhankelijk van maxBytesPerTrigger wat het eerst wordt bereikt.Opmerking: voor streamingtabellen die zijn gemaakt in serverloze SQL-warehouses, moet deze optie niet maxFilesPerTrigger worden ingesteld om gebruik te maken van dynamisch toegangsbeheer, waarmee de workloadgrootte en serverloze rekenresources worden geschaald, zodat u de beste latentie en prestaties krijgt.Standaardwaarde: Geen |
maxFilesPerTrigger Type: Integer Het maximum aantal nieuwe bestanden dat in elke trigger moet worden verwerkt. Wanneer Azure Databricks samen wordt maxBytesPerTrigger gebruikt, verbruikt azure databricks tot de ondergrens van of maxFilesPerTrigger , afhankelijk van maxBytesPerTrigger wat het eerst wordt bereikt.Opmerking: voor streamingtabellen die zijn gemaakt in serverloze SQL-warehouses, moet deze optie niet maxBytesPerTrigger worden ingesteld om gebruik te maken van dynamisch toegangsbeheer, waarmee de workloadgrootte en serverloze rekenresources worden geschaald, zodat u de beste latentie en prestaties krijgt.Standaardwaarde: 1000 |
schemaEvolutionMode Type: String De modus voor het ontwikkelen van het schema als nieuwe kolommen worden gedetecteerd in de gegevens. Standaard worden kolommen afgeleid als tekenreeksen bij het uitstellen 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);