read_files
tabellvärdesfunktion
Gäller för: Databricks SQL Databricks Runtime 13.3 LTS och senare
Läser filer under en angivet plats och returnerar data i tabellformat.
Stöder läsning JSON
, CSV
, XML
, TEXT
, BINARYFILE
, PARQUET
, AVRO
och ORC
filformat.
Kan identifiera filformatet automatiskt och härleda ett enhetligt schema för alla filer.
Syntax
read_files(path [, option_key => option_value ] [...])
Argument
Den här funktionen kräver namngivna parameteranrop för alternativnycklarna.
path
: ASTRING
med URI för platsen för data. Stöder läsning från Azure Data Lake Storage Gen2 ('abfss://'
), S3 (s3://
) och Google Cloud Storage ('gs://'
). Kan innehålla globs. Mer information finns i Filidentifiering .option_key
: Namnet på alternativet som ska konfigureras. Du måste använda backticks (') för alternativ som innehåller punkter (.
).option_value
: Ett konstant uttryck som alternativet ska anges till. Accepterar literaler och skalärfunktioner.
Returer
En tabell som består av data från filer som lästs under den angivna path
.
Filidentifiering
read_files
kan läsa en enskild fil eller läsa filer under en angivet katalog. read_files
identifierar alla filer under den angivna katalogen rekursivt om inte en glob tillhandahålls, vilket instruerar read_files
att upprepas i ett specifikt katalogmönster.
Filtrera kataloger eller filer med hjälp av globmönster
Globmönster kan användas för att filtrera kataloger och filer när de anges i sökvägen.
Mönster | beskrivning |
---|---|
? |
Matchar ett enskilt tecken |
* |
Matchar noll eller fler tecken |
[abc] |
Matchar ett enskilt tecken från teckenuppsättningen {a,b,c}. |
[a-z] |
Matchar ett enskilt tecken från teckenområdet {a... z}. |
[^a] |
Matchar ett enskilt tecken som inte kommer från teckenuppsättningen eller intervallet {a}. Observera att ^ tecknet måste ske omedelbart till höger om den inledande hakparentesen. |
{ab,cd} |
Matchar en sträng från stränguppsättningen {ab, cd}. |
{ab,c{de, fh}} |
Matchar en sträng från stränguppsättningen {ab, cde, cfh}. |
read_files
använder Auto Loader strikt globber när du identifierar filer med globs. Detta konfigureras med alternativet useStrictGlobber
. När den strikta globbern är inaktiverad släpps avslutande snedstreck (/
) och ett stjärnmönster som /*/
kan expandera till att upptäcka flera kataloger. Se exemplen nedan för att se skillnaden i beteende.
Mönster | Filsökväg | Strikt globber inaktiverad | Strikt klotber aktiverat |
---|---|---|---|
/a/b |
/a/b/c/file.txt |
Ja | Ja |
/a/b |
/a/b_dir/c/file.txt |
Nej | Nej |
/a/b |
/a/b.txt |
Nej | Nej |
/a/b/ |
/a/b.txt |
Nej | Nej |
/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 | Nej |
/a/*/c/ |
/a/b/x/y/c/file.txt |
Ja | Nej |
/a/*/c |
/a/b/c_file.txt |
Ja | Nej |
/a/*/c/ |
/a/b/c_file.txt |
Ja | Nej |
/a/*/c |
/a/b/cookie/file.txt |
Ja | Nej |
/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 |
Nej | Nej |
/a/b/[cde-h]/i/ |
/a/b/c/i/file.txt |
Ja | Ja |
Schemahärledning
Schemat för filerna kan uttryckligen anges med read_files
alternativet schema
. När schemat inte har angetts read_files
försöker du härleda ett enhetligt schema över de identifierade filerna, vilket kräver att alla filer läss om inte en LIMIT
instruktion används. Även när du använder en LIMIT
fråga kan en större uppsättning filer än vad som krävs läsas för att returnera ett mer representativt schema för data. Databricks lägger automatiskt till en LIMIT
instruktion för SELECT
frågor i notebook-filer och SQL-redigeraren om en användare inte har angett någon.
Alternativet schemaHints
kan användas för att åtgärda delmängder av det härledda schemat. Mer information finns i Åsidosätta schemainferens med schematips.
A rescuedDataColumn
tillhandahålls som standard för att rädda data som inte matchar schemat. Mer information finns i Vad är den räddade datakolumnen? Du kan släppa rescuedDataColumn
alternativet genom att ange .schemaEvolutionMode => 'none'
Slutsatsdragning av partitionsschema
read_files
kan också härleda partitioneringskolumner om filer lagras under Partitionerade kataloger i Hive-stil, dvs /column_name=column_value/
. Om en schema
anges använder de identifierade partitionskolumnerna de typer som anges i schema
. Om partitionskolumnerna inte ingår i angivna schema
ignoreras de härledda partitionskolumnerna.
Om det finns en kolumn i både partitionsschemat och i datakolumnerna används värdet som läse från partitionsvärdet i stället för datavärdet. Om du vill ignorera de värden som kommer från katalogen och använda datakolumnen kan du ange listan med partitionskolumner i en kommaavgränsad lista med alternativet partitionColumns
.
Alternativet partitionColumns
kan också användas för att instruera om read_files
vilka identifierade kolumner som ska inkluderas i det slutliga härledda schemat. Om du anger en tom sträng ignoreras alla partitionskolumner.
Alternativet schemaHints
kan också anges för att åsidosätta det härledda schemat för en partitionskolumn.
Formaten TEXT
och BINARYFILE
har ett fast schema, men read_files
försöker också härleda partitionering för dessa format när det är möjligt.
Användning i strömningstabeller
read_files
kan användas i strömmande tabeller för att mata in filer i Delta Lake. read_files
utnyttjar automatisk inläsning när den används i en strömningstabellfråga. Du måste använda nyckelordet STREAM
med read_files
. Mer information finns i Vad är automatisk inläsning?
När det används i en direktuppspelningsfråga read_files
använder du ett exempel på data för att härleda schemat och kan utveckla schemat när det bearbetar mer data. Mer information finns i Konfigurera schemainferens och utveckling i Auto Loader .
Alternativ
- Grundläggande alternativ
- Allmänna alternativ
JSON
AlternativCSV
AlternativXML
AlternativPARQUET
AlternativAVRO
AlternativBINARYFILE
AlternativTEXT
AlternativORC
Alternativ- Alternativ för direktuppspelning
Grundläggande alternativ
Alternativ |
---|
format Typ: String Datafilformatet i källsökvägen. Härleds automatiskt om det inte tillhandahålls. Tillåtna värden är: - avro : Avro-fil- binaryFile : Binär fil- csv : Läsa CSV-filer- json : JSON-fil- orc : ORC-fil- parquet : Läsa Parquet-filer med Azure Databricks- text : Textfiler- xml : Läsa och skriva XML-filerStandardvärde: Ingen |
inferColumnTypes Typ: Boolean Om du vill härleda exakta kolumntyper vid användning av schemainferens. Som standard härleds kolumner när JSON- och CSV-datauppsättningar härleds. Mer information finns i schemainferens . Observera att detta är motsatsen till standardvärdet för automatisk inläsning. Standardvärde: true |
partitionColumns Typ: String En kommaavgränsad lista över Partitionskolumner i Hive-format som du vill härleda från filernas katalogstruktur. Partitionskolumner i Hive-format är nyckel/värde-par som kombineras med ett likhetstecken, till exempel <base-path>/a=x/b=1/c=y/file.format . I det här exemplet är a partitionskolumnerna , b och c . Som standard läggs dessa kolumner automatiskt till i schemat om du använder schemainferens och anger att <base-path> data ska läsas in från. Om du anger ett schema förväntar sig Auto Loader att dessa kolumner inkluderas i schemat. Om du inte vill att dessa kolumner ska ingå i schemat kan du ange "" att dessa kolumner ska ignoreras. Dessutom kan du använda det här alternativet när du vill att kolumner ska härledas till filsökvägen i komplexa katalogstrukturer, som exemplet nedan:<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 Ange som year,month,day returnerasyear=2022 för file1.csv , men kolumnerna month och day blir null .month och day parsas korrekt för file2.csv och file3.csv .Standardvärde: Ingen |
schemaHints Typ: String Schemainformation som du anger för Automatisk inläsning under schemainferens. Mer information finns i schematips . Standardvärde: Ingen |
useStrictGlobber Typ: Boolean Om du vill använda en strikt globber som matchar standardbeteendet för andra filkällor i Apache Spark. Mer information finns i Vanliga datainläsningsmönster . Finns i Databricks Runtime 12.2 LTS och senare. Observera att detta är motsatsen till standardvärdet för automatisk inläsning. Standardvärde: true |
Allmänna alternativ
Följande alternativ gäller för alla filformat.
Alternativ |
---|
ignoreCorruptFiles Typ: Boolean Om du vill ignorera skadade filer. Om det är sant fortsätter Spark-jobben att köras när skadade filer påträffas och innehållet som har lästs returneras fortfarande. Kan observeras som numSkippedCorruptFiles ioperationMetrics kolumn i Delta Lake-historiken. Finns i Databricks Runtime 11.3 LTS och senare.Standardvärde: false |
ignoreMissingFiles Typ: Boolean Om du vill ignorera filer som saknas. Om det är sant fortsätter Spark-jobben att köras när filer saknas och innehållet som har lästs returneras fortfarande. Finns i Databricks Runtime 11.3 LTS och senare. Standardvärde: false (true för COPY INTO ) |
modifiedAfter Typ: Timestamp String , till exempel 2021-01-01 00:00:00.000000 UTC+0 En valfri tidsstämpel för att mata in filer som har en tidsstämpel för ändring efter den angivna tidsstämpeln. Standardvärde: Ingen |
modifiedBefore Typ: Timestamp String , till exempel 2021-01-01 00:00:00.000000 UTC+0 En valfri tidsstämpel för att mata in filer som har en tidsstämpel för ändring före den angivna tidsstämpeln. Standardvärde: Ingen |
pathGlobFilter eller fileNamePattern Typ: String Ett potentiellt globmönster för att välja filer. Motsvarar PATTERN i COPY INTO . fileNamePattern kan användas i read_files .Standardvärde: Ingen |
recursiveFileLookup Typ: Boolean Om du vill hoppa över partitionsslutsats under schemainferens. Detta påverkar inte vilka filer som läses in. Standardvärde: false |
JSON
Alternativ
Alternativ |
---|
allowBackslashEscapingAnyCharacter Typ: Boolean Om du vill tillåta att omvänt snedstreck undfly alla tecken som lyckas. Om det inte är aktiverat kan endast tecken som uttryckligen anges av JSON-specifikationen undantagas. Standardvärde: false |
allowComments Typ: Boolean Om du vill tillåta användning av Java-, C- och C++-formatkommentarer ( '/' , '*' och '//' sorter) inom parsat innehåll eller inte.Standardvärde: false |
allowNonNumericNumbers Typ: Boolean Om du vill tillåta uppsättningen med token som inte är ett tal ( NaN ) som lagliga flytande talvärden.Standardvärde: true |
allowNumericLeadingZeros Typ: Boolean Om du vill tillåta att heltal börjar med ytterligare (okunniga) nollor (till exempel 000001 ).Standardvärde: false |
allowSingleQuotes Typ: Boolean Om du vill tillåta användning av enkla citattecken (apostrofer, tecken '\' ) för att citera strängar (namn och strängvärden).Standardvärde: true |
allowUnquotedControlChars Typ: Boolean Om JSON-strängar ska tillåtas innehålla icke kapslade kontrolltecken (ASCII-tecken med ett värde som är mindre än 32, inklusive flik- och radmatningstecken) eller inte. Standardvärde: false |
allowUnquotedFieldNames Typ: Boolean Om du vill tillåta användning av ociterade fältnamn (som tillåts av JavaScript, men inte av JSON-specifikationen). Standardvärde: false |
badRecordsPath Typ: String Sökvägen till att lagra filer för att registrera information om felaktiga JSON-poster. Standardvärde: Ingen |
columnNameOfCorruptRecord Typ: String Kolumnen för lagring av poster som är felaktiga och inte kan parsas. mode Om för parsning anges som DROPMALFORMED är den här kolumnen tom.Standardvärde: _corrupt_record |
dateFormat Typ: String Formatet för parsning av datumsträngar. Standardvärde: yyyy-MM-dd |
dropFieldIfAllNull Typ: Boolean Om du vill ignorera kolumner med alla null-värden eller tomma matriser och structs under schemainferens. Standardvärde: false |
encoding eller charset Typ: String Namnet på kodningen av JSON-filerna. Se java.nio.charset.Charset för lista över alternativ. Du kan inte använda UTF-16 och UTF-32 när multiline är true .Standardvärde: UTF-8 |
inferTimestamp Typ: Boolean Om du vill försöka härleda tidsstämpelsträngar som en TimestampType . När det är inställt påtrue kan schemainferensen ta märkbart längre tid. Du måste aktivera cloudFiles.inferColumnTypes för att kunna använda med automatisk inläsning.Standardvärde: false |
lineSep Typ: String En sträng mellan två på varandra följande JSON-poster. Standardvärde: Ingen, som omfattar \r , \r\n och \n |
locale Typ: String En java.util.Locale identifierare. Påverkar standarddatum, tidsstämpel och decimalparsning i JSON.Standardvärde: US |
mode Typ: String Parsningsläge kring hantering av felaktiga poster. En av 'PERMISSIVE' ,'DROPMALFORMED' , eller 'FAILFAST' .Standardvärde: PERMISSIVE |
multiLine Typ: Boolean Om JSON-posterna sträcker sig över flera rader. Standardvärde: false |
prefersDecimal Typ: Boolean Försöker härleda strängar som DecimalType i stället för flyttal eller dubbel typ när det är möjligt. Du måste också använda schemainferens, antingen genom att aktiverainferSchema eller med automatisk cloudFiles.inferColumnTypes inläsning.Standardvärde: false |
primitivesAsString Typ: Boolean Om du vill härleda primitiva typer som tal och booleska värden som StringType .Standardvärde: false |
readerCaseSensitive Typ: Boolean Anger beteendet för skiftlägeskänslighet när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. Annars läser du data på ett skiftlägesokänsligt sätt. Tillgänglig i Databricks Runtime13.3 och senare. Standardvärde: true |
rescuedDataColumn Typ: String Om du vill samla in alla data som inte kan parsas på grund av ett matchningsfel av datatyp eller schemamatchning (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?. Standardvärde: Ingen |
singleVariantColumn Typ: String Om du vill mata in hela JSON-dokumentet, parsat i en enskild variantkolumn med den angivna strängen som kolumnens namn. Om det är inaktiverat matas JSON-fälten in i sina egna kolumner. Standardvärde: Ingen |
timestampFormat Typ: String Formatet för att parsa tidsstämpelsträngar. Standardvärde: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Typ: String Att java.time.ZoneId använda vid parsning av tidsstämplar och datum.Standardvärde: Ingen |
CSV
Alternativ
Alternativ |
---|
badRecordsPath Typ: String Sökvägen till att lagra filer för att registrera information om felaktiga CSV-poster. Standardvärde: Ingen |
charToEscapeQuoteEscaping Typ: Char Tecknet som används för att undkomma det tecken som används för att undvika citattecken. Till exempel för följande post: : [ " a\\", b ] - Om tecknet som ska undkomma '\' är odefinierat parsas inte posten. Parsern läser tecken: [a],[\],["],[,],[ ],[b] och utlöser ett fel eftersom det inte kan hitta ett avslutande citattecken.- Om tecknet för att undkomma '\' definieras som '\' , läss posten med 2 värden: [a\] och [b] .Standardvärde: '\0' |
columnNameOfCorruptRecord > [! OBS! >> Stöds för automatisk inläsning. Stöds inte för COPY INTO .Typ: String Kolumnen för lagring av poster som är felaktiga och inte kan parsas. mode Om för parsning anges som DROPMALFORMED är den här kolumnen tom.Standardvärde: _corrupt_record |
comment Typ: Char Definierar det tecken som representerar en radkommentar när det hittas i början av en textrad. Använd '\0' för att inaktivera överhoppning av kommentarer.Standardvärde: '\u0000' |
dateFormat Typ: String Formatet för parsning av datumsträngar. Standardvärde: yyyy-MM-dd |
emptyValue Typ: String Strängrepresentation av ett tomt värde. Standardvärde: "" |
encoding eller charset Typ: String Namnet på kodningen av CSV-filerna. Se java.nio.charset.Charset listan med alternativ. UTF-16 och UTF-32 kan inte användas när multiline är true .Standardvärde: UTF-8 |
enforceSchema Typ: Boolean Om du vill tillämpa det angivna eller härledda schemat med två två skäl på CSV-filerna. Om alternativet är aktiverat ignoreras rubrikerna för CSV-filer. Det här alternativet ignoreras som standard när du använder Auto Loader för att rädda data och tillåta schemautveckling. Standardvärde: true |
escape Typ: Char Escape-tecknet som ska användas vid parsning av data. Standardvärde: '\' |
header Typ: Boolean Om CSV-filerna innehåller ett huvud. Automatisk inläsning förutsätter att filer har rubriker när schemat härleds. Standardvärde: false |
ignoreLeadingWhiteSpace Typ: Boolean Om du vill ignorera inledande blanksteg för varje parsat värde. Standardvärde: false |
ignoreTrailingWhiteSpace Typ: Boolean Om du vill ignorera avslutande blanksteg för varje parsat värde. Standardvärde: false |
inferSchema Typ: Boolean Om du vill härleda datatyperna för de parsade CSV-posterna eller anta att alla kolumner är av StringType . Kräver ytterligare en överströmning av data om det är inställt på true . Använd i stället för Automatisk inläsare cloudFiles.inferColumnTypes .Standardvärde: false |
lineSep Typ: String En sträng mellan två på varandra följande CSV-poster. Standardvärde: Ingen, som omfattar \r , \r\n och \n |
locale Typ: String En java.util.Locale identifierare. Påverkar standarddatum, tidsstämpel och decimalparsning i CSV.Standardvärde: US |
maxCharsPerColumn Typ: Int Maximalt antal tecken som förväntas från ett värde att parsa. Kan användas för att undvika minnesfel. Standardvärdet -1 är , vilket innebär obegränsat.Standardvärde: -1 |
maxColumns Typ: Int Den hårda gränsen för hur många kolumner en post kan ha. Standardvärde: 20480 |
mergeSchema Typ: Boolean Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas. Aktiverad som standard för automatisk inläsning när schemat härleds. Standardvärde: false |
mode Typ: String Parsningsläge kring hantering av felaktiga poster. En av 'PERMISSIVE' ,'DROPMALFORMED' , och 'FAILFAST' .Standardvärde: PERMISSIVE |
multiLine Typ: Boolean Om CSV-posterna sträcker sig över flera rader. Standardvärde: false |
nanValue Typ: String Strängrepresentationen av ett värde som inte är ett tal vid parsning FloatType och DoubleType kolumner.Standardvärde: "NaN" |
negativeInf Typ: String Strängrepresentationen av negativ oändlighet vid parsning FloatType eller DoubleType kolumner.Standardvärde: "-Inf" |
nullValue Typ: String Strängrepresentation av ett null-värde. Standardvärde: "" |
parserCaseSensitive (inaktuell)Typ: Boolean När du läser filer, om du vill justera kolumner som deklarerats i rubriken med schemafallet känsligt. Detta är true som standard för automatisk inläsning. Kolumner som skiljer sig åt efter skiftläge kommer att räddas i om det rescuedDataColumn är aktiverat. Det här alternativet har blivit inaktuellt till förmån readerCaseSensitive för .Standardvärde: false |
positiveInf Typ: String Strängrepresentationen av positiv oändlighet vid parsning FloatType eller DoubleType kolumner.Standardvärde: "Inf" |
preferDate Typ: Boolean Försöker härleda strängar som datum i stället för tidsstämpel när det är möjligt. Du måste också använda schemainferens, antingen genom att aktivera inferSchema eller användacloudFiles.inferColumnTypes med automatisk inläsning.Standardvärde: true |
quote Typ: Char Tecknet som används för att ta bort värden där fältgränsaren är en del av värdet. Standardvärde: " |
readerCaseSensitive Typ: Boolean Anger beteendet för skiftlägeskänslighet när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. Annars läser du data på ett skiftlägesokänsligt sätt.Standardvärde: true |
rescuedDataColumn Typ: String Om du vill samla in alla data som inte kan parsas på grund av: ett matchningsfel av datatyp och schemamatchningsfel (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?. Standardvärde: Ingen |
sep eller delimiter Typ: String Avgränsarsträngen mellan kolumner. Standardvärde: "," |
skipRows Typ: Int Antalet rader från början av CSV-filen som ska ignoreras (inklusive kommenterade och tomma rader). Om header är sant blir rubriken den första oskippna och okommenterade raden.Standardvärde: 0 |
timestampFormat Typ: String Formatet för att parsa tidsstämpelsträngar. Standardvärde: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Typ: String Att java.time.ZoneId använda vid parsning av tidsstämplar och datum.Standardvärde: Ingen |
unescapedQuoteHandling Typ: String Strategin för hantering av ej kapslade citattecken. Tillåtna alternativ: - STOP_AT_CLOSING_QUOTE : Om ej kapslade citattecken hittas i indata ackumulerar du citattecknet och fortsätter att parsa värdet som ett citerat värde tills en avslutande offert hittas.- BACK_TO_DELIMITER : Om ej kapslade citattecken hittas i indata bör du betrakta värdet som ett icke-citattecken. Detta gör att parsern ackumulerar alla tecken i det aktuella parsade värdet tills avgränsaren som definieras av sep hittas. Om ingen avgränsare hittas i värdet fortsätter parsern att ackumulera tecken från indata tills en avgränsare eller radslut hittas.- STOP_AT_DELIMITER : Om ej kapslade citattecken hittas i indata bör du betrakta värdet som ett icke-citattecken. Detta gör att parsern ackumulerar alla tecken tills avgränsaren som definieras av sep , eller så hittas ett radslut i indata.- SKIP_VALUE : Om ej kapslade citattecken hittas i indata hoppas innehållet som parsas för det angivna värdet över (tills nästa avgränsare hittas) och värdet som anges i skapas i nullValue stället.- RAISE_ERROR : Om ej inkapslade citattecken hittas i indataTextParsingException kommer att kastas.Standardvärde: STOP_AT_DELIMITER |
XML
Alternativ
Alternativ | Description | Definitionsområde |
---|---|---|
rowTag |
Radtaggen för XML-filerna som ska behandlas som en rad. I xml-exemplet <books> <book><book>...<books> är book lämpligt värde . Det här är ett obligatoriskt alternativ. |
läs |
samplingRatio |
Definierar en bråkdel av rader som används för schemainferens. Inbyggda XML-funktioner ignorerar det här alternativet. Standard: 1.0 . |
läs |
excludeAttribute |
Om du vill exkludera attribut i element. Standard: false . |
läs |
mode |
Läge för att hantera skadade poster under parsning.PERMISSIVE : För skadade poster placerar du den felaktiga strängen i ett fält som konfigurerats av columnNameOfCorruptRecord och anger felaktiga fält till null . Om du vill behålla skadade poster kan du ange ett string typfält med namnet columnNameOfCorruptRecord i ett användardefinierat schema. Om ett schema inte har fältet tas skadade poster bort under parsningen. När du härleder ett schema lägger parsern implicit till ett columnNameOfCorruptRecord fält i ett utdataschema.DROPMALFORMED : Ignorerar skadade poster. Det här läget stöds inte för inbyggda XML-funktioner.FAILFAST : Utlöser ett undantag när parsern möter skadade poster. |
läs |
inferSchema |
Om true försöker du härleda en lämplig typ för varje resulterande DataFrame-kolumn. Om false är alla resulterande kolumner av string typen . Standardvärde:true . Inbyggda XML-funktioner ignorerar det här alternativet. |
läs |
columnNameOfCorruptRecord |
Tillåter namnbyte av det nya fältet som innehåller en felaktigt formaterad sträng som skapats avPERMISSIVE läge. Standard: spark.sql.columnNameOfCorruptRecord . |
läs |
attributePrefix |
Prefixet för attribut för att skilja attribut från element. Det här är prefixet för fältnamn. Standard är _ . Kan vara tomt för läsning av XML, men inte för skrivning. |
läsa, skriva |
valueTag |
Taggen som används för teckendata i element som också har attribut eller underordnade element. Användaren kan ange fältet valueTag i schemat eller så läggs det till automatiskt under schemainferensen när teckendata finns i element med andra element eller attribut. Standard: _VALUE |
read,write |
encoding |
För läsning avkodar XML-filerna efter den angivna kodningstypen. För skrivning anger kodning (teckenuppsättning) för sparade XML-filer. Inbyggda XML-funktioner ignorerar det här alternativet. Standard: UTF-8 . |
läsa, skriva |
ignoreSurroundingSpaces |
Definierar om omgivande blanksteg från värden som ska läsas ska hoppas över. Standard: true . Teckendata för endast blanksteg ignoreras. |
läs |
rowValidationXSDPath |
Sökväg till en valfri XSD-fil som används för att verifiera XML för varje rad individuellt. Rader som inte kan verifieras behandlas som parsningsfel som ovan. XSD påverkar inte det angivna eller härledda schemat på något annat sätt. | läs |
ignoreNamespace |
Om true ignoreras namnrymdernas prefix för XML-element och attribut. Taggar <abc:author> och <def:author> , till exempel, behandlas som om båda bara <author> är . Det går inte att ignorera namnrymder på elementet rowTag , bara dess läs underordnade. XML-parsning är inte namnområdesmedveten även om false . Standard: false . |
läs |
timestampFormat |
Anpassad tidsstämpelformatsträng som följer datetime-mönsterformatet . Detta gäller för timestamp typ. Standard: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] . |
läsa, skriva |
timestampNTZFormat |
Anpassad formatsträng för tidsstämpel utan tidszon som följer datetime-mönsterformatet. Detta gäller för timestampNTZType-typen. Standardvärde:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
läsa, skriva |
dateFormat |
Anpassad datumformatsträng som följer datetime-mönsterformatet. Detta gäller för datumtyp. Standard: yyyy-MM-dd . |
läsa, skriva |
locale |
Anger ett språkspråk som en språktagg i IETF BCP 47-format. Används till exempel locale vid parsning av datum och tidsstämplar. Standard: en-US . |
läs |
rootTag |
Rottagg för XML-filerna. I är books till exempel <books> <book><book>...</books> lämpligt värde . Du kan inkludera grundläggande attribut genom att ange ett värde som books foo="bar" . Standard: ROWS . |
skriva |
declaration |
Innehållet i XML-deklarationen som ska skrivas i början av varje XML-utdatafil före rootTag . Till exempel ett värde för foo orsaker <?xml foo?> som ska skrivas. Ange till en tom sträng som ska ignoreras. Standard: version="1.0" encoding="UTF-8" standalone="yes" . |
skriva |
arrayElementName |
Namn på XML-element som omger varje element i en matrisvärdeskolumn när du skriver. Standard: item . |
skriva |
nullValue |
Anger strängrepresentationen av ett null-värde. Standard: sträng null . När detta är null skriver parsern inte attribut och element för fält. |
läsa, skriva |
compression |
Komprimeringskod som ska användas när du sparar till filen. Detta kan vara ett av de kända skiftlägesokänsliga förkortade namnen (none , , bzip2 gzip ,lz4 , snappy ochdeflate ). Inbyggda XML-funktioner ignorerar det här alternativet. Standard: none . |
skriva |
validateName |
Om det är sant utlöser ett fel vid verifiering av XML-elementnamn. SQL-fältnamn kan till exempel ha blanksteg, men det går inte att använda XML-elementnamn. Standardvärde:true . |
skriva |
readerCaseSensitive |
Anger beteendet för skiftlägeskänslighet när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. Annars läser du data på ett skiftlägesokänsligt sätt. Standard: true . |
läs |
rescuedDataColumn |
Om du vill samla in alla data som inte kan parsas på grund av ett matchningsfel av datatyp och schemamatchning (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?. Standard: Ingen. | läs |
PARQUET
Alternativ
Alternativ |
---|
datetimeRebaseMode Typ: String Styr ombaseringen av DATE- och TIMESTAMP-värdena mellan julianska och proleptiska gregorianska kalendrar. Tillåtna värden: EXCEPTION , LEGACY ochCORRECTED .Standardvärde: LEGACY |
int96RebaseMode Typ: String Styr ombaseringen av INT96-tidsstämpelvärdena mellan julianska och proleptiska gregorianska kalendrar. Tillåtna värden: EXCEPTION , LEGACY ochCORRECTED .Standardvärde: LEGACY |
mergeSchema Typ: Boolean Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas. Standardvärde: false |
readerCaseSensitive Typ: Boolean Anger beteendet för skiftlägeskänslighet när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. Annars läser du data på ett skiftlägesokänsligt sätt.Standardvärde: true |
rescuedDataColumn Typ: String Om du vill samla in alla data som inte kan parsas på grund av: ett matchningsfel av datatyp och schemamatchningsfel (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?. Standardvärde: Ingen |
AVRO
Alternativ
Alternativ |
---|
avroSchema Typ: String Valfritt schema som tillhandahålls av en användare i Avro-format. När du läser Avro kan det här alternativet ställas in på ett utvecklat schema, som är kompatibelt men annorlunda med det faktiska Avro-schemat. Deserialiseringsschemat överensstämmer med det utvecklade schemat. Om du till exempel anger ett schema som innehåller ytterligare en kolumn med ett standardvärde innehåller läsresultatet även den nya kolumnen. Standardvärde: Ingen |
datetimeRebaseMode Typ: String Styr ombaseringen av DATE- och TIMESTAMP-värdena mellan julianska och proleptiska gregorianska kalendrar. Tillåtna värden: EXCEPTION , LEGACY ochCORRECTED .Standardvärde: LEGACY |
mergeSchema Typ: Boolean Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas. mergeSchema för Avro slappnar inte av datatyper.Standardvärde: false |
readerCaseSensitive Typ: Boolean Anger beteendet för skiftlägeskänslighet när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. Annars läser du data på ett skiftlägesokänsligt sätt.Standardvärde: true |
rescuedDataColumn Typ: String Om du vill samla in alla data som inte kan parsas på grund av: ett matchningsfel av datatyp och schemamatchningsfel (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?. Standardvärde: Ingen |
BINARYFILE
Alternativ
Binära filer har inga ytterligare konfigurationsalternativ.
TEXT
Alternativ
Alternativ |
---|
encoding Typ: String Namnet på kodningen av TEXT-filerna. Se java.nio.charset.Charset för lista över alternativ.Standardvärde: UTF-8 |
lineSep Typ: String En sträng mellan två textposter i följd. Standardvärde: Ingen, som omfattar \r , \r\n och \n |
wholeText Typ: Boolean Om du vill läsa en fil som en enda post. Standardvärde: false |
ORC
Alternativ
Alternativ |
---|
mergeSchema Typ: Boolean Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas. Standardvärde: false |
Alternativ för direktuppspelning
De här alternativen gäller när du använder read_files
i en direktuppspelningstabell eller en direktuppspelningsfråga.
Alternativ |
---|
allowOverwrites Typ: Boolean Om filer som har ändrats efter identifieringen ska bearbetas igen. Den senaste tillgängliga versionen av filen bearbetas under en uppdatering om den har ändrats sedan den senaste lyckade uppdateringsfrågans starttid. Standardvärde: false |
includeExistingFiles Typ: Boolean Om du vill inkludera befintliga filer i indatasökvägen för dataströmbearbetning eller endast bearbeta nya filer som kommer efter den första installationen. Det här alternativet utvärderas endast när du startar en dataström för första gången. Att ändra det här alternativet efter att strömmen har startats om har ingen effekt. Standardvärde: true |
maxBytesPerTrigger Typ: Byte String Det maximala antalet nya byte som ska bearbetas i varje utlösare. Du kan ange en bytesträng, till exempel 10g för att begränsa varje mikrobatch till 10 GB data. Detta är ett mjukt maxvärde. Om du har filer som är 3 GB vardera bearbetar Azure Databricks 12 GB i en mikrobatch. När det används tillsammans med maxFilesPerTrigger förbrukar Azure Databricks upp till den lägre gränsen maxFilesPerTrigger på eller maxBytesPerTrigger , beroende på vilket som uppnås först.Obs! För strömmande tabeller som skapats på serverlösa SQL-lager bör det här alternativet och maxFilesPerTrigger inte ställas in för att utnyttja dynamisk antagningskontroll, som skalar efter arbetsbelastningsstorlek och serverlösa beräkningsresurser för att ge dig bästa svarstid och prestanda.Standardvärde: Ingen |
maxFilesPerTrigger Typ: Integer Det maximala antalet nya filer som ska bearbetas i varje utlösare. När det används tillsammans med maxBytesPerTrigger förbrukar Azure Databricks upp till den lägre gränsen maxFilesPerTrigger på eller maxBytesPerTrigger , beroende på vilket som uppnås först.Obs! För strömmande tabeller som skapats på serverlösa SQL-lager bör det här alternativet och maxBytesPerTrigger inte ställas in för att utnyttja dynamisk antagningskontroll, som skalar efter arbetsbelastningsstorlek och serverlösa beräkningsresurser för att ge dig bästa svarstid och prestanda.Standardvärde: 1 000 |
schemaEvolutionMode Typ: String Läget för att utveckla schemat när nya kolumner identifieras i data. Som standard härleds kolumner som strängar när JSON-datauppsättningar härleds. Mer information finns i schemautveckling . Det här alternativet gäller inte för text filer och binaryFile filer.Standardvärde: "addNewColumns" när ett schema inte har angetts."none" annars. |
schemaLocation Typ: String Platsen där du vill lagra det härledda schemat och efterföljande ändringar. Mer information finns i schemainferens . Schemaplatsen krävs inte när den används i en strömningstabellfråga. Standardvärde: Ingen |
Exempel
-- 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);