Dela via


read_files tabellvärdesfunktion

Gäller för:markerad ja Databricks SQL markerad ja 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, AVROoch 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: A STRING 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. Se Filsökning för mer information.
  • option_key: Namnet på alternativet som ska konfigureras. Du måste använda backticks () for options that contain dots (`).
  • 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.

Filsökning

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 placeras omedelbart till höger om den öppnande 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 Loaders strikta globmönster när det upptäcker filer med glob-mönster. Detta konfigureras med alternativet useStrictGlobber . När den strikta globbern är inaktiverad tas avslutande snedstreck (/) bort, och ett stjärnmönster som /*/ kan utvidgas till att upptäcka flera kataloger. Se exemplen nedan för att se skillnaden i beteende.

Mönster Filsökväg Strikt globber avaktiverad Strikt globmönster 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 till read_files med 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 ett LIMIT uttryck för SELECT sökfrågor i anteckningsböcker och SQL-redigeraren om en användare inte har tillhandahållit ett.

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 schemaignoreras de härledda partitionskolumnerna.

Om det finns en kolumn i både partitionsschemat och i datakolumnerna används värdet som läses från partitionsschemat 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 Auto Loader när den används i en strömmande tabellfråga. Du måste använda nyckelordet STREAM med read_files. Se Vad är automatisk inläsning? för mer information.

När det används i en direktuppspelningsfråga, använder read_files ett urval av 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

Alternativ
format
Typ: String
Datafilens format i källsökvägen. Härleds automatiskt om det inte anges. Tillåtna värden är:

Standardvä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 standardinställningen för Auto-laddare.
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 partitionskolumnerna a, 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
Genom att ange cloudFiles.partitionColumns som year,month,day kommer det att returneras
year=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 Auto Loader vid schemainferens. Mer information finns i schematips .
Standardvärde: Ingen
useStrictGlobber
Typ: Boolean
Huruvida man ska använda en strikt globber som matchar standardglobbingbeteendet 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 i
operationMetrics 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 för automatisk inläsning, true för COPY INTO (äldre)
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 (äldre). 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
Tillåta att omvänt snedstreck används för att undkomma vilket tecken som helst som följer efter det. 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 det ska tillåtas att tokens av typen not-a-number (NaN) används som giltiga flyttalvärden.
Standardvärde: true
allowNumericLeadingZeros
Typ: Boolean
Huruvida man ska tillåta att heltal börjar med ytterligare (ignorerbara) 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 för att lagra filer för att spara information om felaktiga JSON-poster.
Standardvärde: Ingen
columnNameOfCorruptRecord
Typ: String
Kolumnen för lagring av dataposter som är felaktiga och inte kan parsas. Om mode för parsning är inställt på DROPMALFORMED, kommer den här kolumnen att vara 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
Huruvida man ska försöka härleda tidsstämpelsträngar som en TimestampType. När det är inställt på
truekan schemainferensen ta märkbart längre tid. Du måste aktivera cloudFiles.inferColumnTypes för att kunna använda med Auto Loader.
Standardvärde: false
lineSep
Typ: String
En sträng mellan två på varandra följande JSON-poster.
Standardvärde: Ingen, som omfattar \r, \r\noch \n
locale
Typ: String
En java.util.Locale identifikator. Påverkar standarddatum, tidsstämpel och decimalparsning i JSON.
Standardvärde: US
mode
Typ: String
Parserlä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 aktivera
inferSchema eller genom att använda cloudFiles.inferColumnTypes med Auto Loader.
Standardvärde: false
primitivesAsString
Typ: Boolean
Ska primitiva typer som tal och booleska värden härledas 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 Runtime
13.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?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
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
Vid parsning av tidsstämplar och datum, att använda java.time.ZoneId.
Standardvärde: Ingen

CSV Alternativ

Alternativ
badRecordsPath
Typ: String
Sökvägen för att lagra filer för registrering av 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 escape-tecknet för '\' är odefinierat kommer posten inte att bli analyserad. 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 '\', kommer posten att läsas med 2 värden: [a\] och [b].

Standardvärde: '\0'
columnNameOfCorruptRecord
Stöds för Auto Loader. Stöds inte för COPY INTO (äldre).
Typ: String
Kolumnen för lagring av dataposter som är felaktiga och inte kan parsas. Om mode för parsning är inställt på DROPMALFORMED, kommer den här kolumnen att vara 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
Huruvida det angivna eller härledda schemat ska tvingt tillämpas 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. Auto Loader 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
Huruvida man ska 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 en ytterligare genomgång av data om det är inställt på true. Använd i stället cloudFiles.inferColumnTypes för Auto Loader.
Standardvärde: false
lineSep
Typ: String
En sträng mellan två på varandra följande CSV-poster.
Standardvärde: Ingen, som omfattar \r, \r\noch \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 är -1, 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 Auto Loader vid schemaidentifiering.
Standardvärde: false
mode
Typ: String
Parsningsläge för 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 tolkning av 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, avgör om kolumnerna som deklarerats i rubriken ska justeras känsligt för skiftläget i schemat. Detta är true som standard för automatisk inläsning. Kolumner som skiljer sig åt i skiftläge kommer att sparas i rescuedDataColumn, om det är aktiverat. Det här alternativet har utgått till förmån för readerCaseSensitive.
Standardvärde: false
positiveInf
Typ: String
Strängrepresentationen av positiv oändlighet vid parsning av FloatType eller DoubleType-kolumnerna.
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ända
cloudFiles.inferColumnTypes med Auto Loader.
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
Specificerar 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?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
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 förbigångna 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
Vid parsning av tidsstämplar och datum, att använda java.time.ZoneId.
Standardvärde: Ingen
unescapedQuoteHandling
Typ: String
Strategin för hantering av oskyddade citattecken. Tillåtna alternativ:
  • STOP_AT_CLOSING_QUOTE: Om okapslade citattecken hittas i indata ackumulerar du citattecknet och fortsätter att parsa värdet som ett citerat värde tills ett avslutande citattecken hittas.
  • BACK_TO_DELIMITER: Om okapslade citattecken hittas i indata, betrakta värdet som ett ocitat värde. 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 okapslade citattecken hittas i indata, betrakta värdet som ett ocitat värde. Detta gör att parsern ackumulerar alla tecken tills avgränsaren som definieras av sep hittas, eller en radbrytning påträffas i indata.
  • SKIP_VALUE: Om okapslade citattecken hittas i indata kommer innehållet för det angivna värdet att hoppas över (tills nästa avgränsare hittas) och värdet som anges i nullValue kommer att skapas istället.
  • RAISE_ERROR: Om icke-inkapslade citattecken hittas i inmatningen,
    TextParsingException kommer att kastas ut.

Standardvärde: STOP_AT_DELIMITER

XML Alternativ

Alternativ beskrivning Definitionsområde
rowTag Radtaggen för XML-filerna som ska behandlas som en rad. I xml-exemplet <books> <book><book>...<books>är booklä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 korrupta poster under parsning av data.
PERMISSIVE: För skadade poster placerar du den felaktiga strängen i ett fält som konfigurerats av columnNameOfCorruptRecord och sätter felaktiga fält till null. Om du vill behålla korrupta poster kan du ange ett fält av typen string 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 om parsern möter korrupta register.
läs
inferSchema Om truefö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 av
PERMISSIVE läge. Förvald: 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 och/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 läsa, skriva
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 huruvida omgivande blanksteg i värden som läses in ska hoppas över. Standard: true. Teckendata som endast innehåller 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 trueignoreras namnrymdernas prefix för XML-element och attribut. Taggar <abc:author> och <def:author>, till exempel, behandlas som om båda är <author>. Namnrymder kan inte ignoreras på elementet rowTag, endast dess läsbara underordnade element. 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 Ställer in en språklokalisering 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 <books> <book><book>...</books> är det lämpliga värdet books. 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 gör ett värde av foo att <?xml foo?> skrivs. Ange en tom sträng för att undertrycka. 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 nullskriver 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 och
deflate). Inbyggda XML-funktioner ignorerar det här alternativet. Standard: none.
skriva
validateName Om sant, orsakar det ett fel vid validering av XML-elementnamn. SQL-fältnamn kan till exempel ha blanksteg, men XML-elementnamn kan inte. Standardvärde:
true.
skriva
readerCaseSensitive Specificerar skiftlägeskänslighetens beteende när rescuedDataColumn-funktionen är aktiverad. 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?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
Standard: Ingen inställning.
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, LEGACYoch
CORRECTED.
Standardvärde: LEGACY
int96RebaseMode
Typ: String
Styr ombaseringen av INT96-tidsstämpelvärdena mellan julianska och proleptiska gregorianska kalendrar. Tillåtna värden: EXCEPTION, LEGACYoch
CORRECTED.
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 "case sensitivity" 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?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
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, LEGACYoch
CORRECTED.
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 tillåter inte flexibilitet i datatyper.
Standardvärde: false
readerCaseSensitive
Typ: Boolean
Specificerar hur skiftlägeskänslighet fungerar 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.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
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å på varandra följande TEXT-poster.
Standardvärde: Ingen, som omfattar \r, \r\n och \n
wholeText
Typ: Boolean
Om en fil ska läsas 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 nedre gränsen av maxFilesPerTrigger 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 nedre gränsen av maxFilesPerTrigger 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
Sättet att utveckla schemat när nya kolumner upptäcks 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);