read_files
table-hodnotová funkce
Platí pro: Databricks SQL Databricks Runtime 13.3 LTS a vyšší
Načte soubory v zadaném umístění a vrátí data v tabulkové podobě.
Podporuje čtení JSON
, , CSV
, XML
, TEXT
, BINARYFILE
PARQUET
, AVRO
, a ORC
formáty souborů.
Dokáže automaticky rozpoznat formát souboru a odvodit jednotný schema napříč všemi soubory.
Syntaxe
read_files(path [, option_key => option_value ] [...])
Argumenty
Tato funkce vyžaduje vyvolání pojmenovaného parametru pro klíče možností.
-
path
: ASTRING
s identifikátorem URI umístění dat. Podporuje čtení z Azure Data Lake Storage Gen2 ('abfss://'
), S3 (s3://
) a Google Cloud Storage ('gs://'
). Může obsahovat globy. Další podrobnosti najdete v tématu Zjišťování souborů. -
option_key
: Název možnosti konfigurace. Pro možnosti, které obsahují tečky (), musíte použít backticks (.
'). -
option_value
: Konstantní výraz, který má set možnost povolit. Přijímá literály a skalární funkce.
Návraty
table sestavená z dat ze souborů přečtených v daném path
.
Zjišťování souborů
read_files
může číst jednotlivé soubory nebo číst soubory v zadaném adresáři.
read_files
zjistí všechny soubory v zadaném adresáři rekurzivně, pokud není zadaný glob , který dává pokyn read_files
, aby se znovu dostal do určitého vzoru adresáře.
Filtrování adresářů nebo souborů pomocí vzorů globu
Vzory globu lze použít pro filtrování adresářů a souborů, pokud jsou v cestě k dispozici.
Vzor | Popis |
---|---|
? |
Odpovídá jakémukoli jednomu znaku. |
* |
Odpovídá nule nebo více znaků |
[abc] |
Odpovídá jednomu znaku ze znaku set {a,b,c}. |
[a-z] |
Odpovídá jednomu znaku z rozsahu znaků {a... z}. |
[^a] |
Odpovídá jednomu znaku, který není z znaku set nebo rozsahu {a}. Všimněte si, že ^ znak musí nastat okamžitě napravo od levé závorky. |
{ab,cd} |
Odpovídá řetězci z řetězce set {ab, cd}. |
{ab,c{de, fh}} |
Odpovídá řetězci z řetězce set {ab, cde, cfh}. |
read_files
při zjišťování souborů pomocí globů používá striktní zavaděč automatického zavaděče. Tato možnost je nakonfigurovaná useStrictGlobber
. Když je striktní globber zakázaný, koncové lomítka (/
) se zahodí a hvězdicový vzor, například /*/
se může rozšířit do objevování více adresářů. Podívejte se na následující příklady a podívejte se na rozdíl v chování.
Vzor | Cesta k souboru | Striktní zakázání globberu | Je povolen striktní globber |
---|---|---|---|
/a/b |
/a/b/c/file.txt |
Ano | Ano |
/a/b |
/a/b_dir/c/file.txt |
Ne | Ne |
/a/b |
/a/b.txt |
Ne | Ne |
/a/b/ |
/a/b.txt |
Ne | Ne |
/a/*/c/ |
/a/b/c/file.txt |
Ano | Ano |
/a/*/c/ |
/a/b/c/d/file.txt |
Ano | Ano |
/a/*/d/ |
/a/b/c/d/file.txt |
Ano | Ne |
/a/*/c/ |
/a/b/x/y/c/file.txt |
Ano | Ne |
/a/*/c |
/a/b/c_file.txt |
Ano | Ne |
/a/*/c/ |
/a/b/c_file.txt |
Ano | Ne |
/a/*/c |
/a/b/cookie/file.txt |
Ano | Ne |
/a/b* |
/a/b.txt |
Ano | Ano |
/a/b* |
/a/b/file.txt |
Ano | Ano |
/a/{0.txt,1.txt} |
/a/0.txt |
Ano | Ano |
/a/*/{0.txt,1.txt} |
/a/0.txt |
Ne | Ne |
/a/b/[cde-h]/i/ |
/a/b/c/i/file.txt |
Ano | Ano |
Schema odvozovat
schema souborů je možné explicitně poskytnout pro read_files
s možností schema
. Pokud schema není k dispozici, read_files
se pokusí odvodit jednotný schema napříč zjištěnými soubory, což vyžaduje čtení všech souborů, pokud se nepoužije příkaz LIMIT
. I když používáte dotaz LIMIT
, může být přečteno více souborů set, než je nezbytné, aby se vrátila reprezentativní část schema dat. Databricks automaticky přidá LIMIT
příkaz pro SELECT
dotazy v poznámkových blocích a editor SQL, pokud ho uživatel nezadá.
Možnost schemaHints
lze použít k opravě podmnožin zjištěných schema. Podívejte se na Přepsání závěrů schema pomocí nápověd schema pro více informací.
Ve výchozím nastavení je k dispozici rescuedDataColumn
k záchraně všech dat, která neodpovídají schema. Podívejte se na Co jsou zachráněná data column? pro více podrobností. Nastavení možnosti rescuedDataColumn
můžete vyřaditschemaEvolutionMode => 'none'
.
Partition schema závěr
read_files
lze také odvodit dělení columns, pokud jsou soubory uloženy v oddílů adresářů ve stylu Hive, to je /column_name=column_value/
. Pokud je k dispozici schema
, zjištěná partitioncolumns použijí typy uvedené v schema
. Pokud partitioncolumns nejsou součástí poskytnutého schema
, odvozené partitioncolumns budou ignorovány.
Pokud column existuje jak v partitionschema, tak v datovém columns, použije se hodnota načtená z partition, místo datové hodnoty. Pokud chcete ignorovat values přicházející z adresáře a použít columndat, můžete zadat listpartitioncolumns v list oddělených čárkami s možností partitionColumns
.
Možnost partitionColumns
lze také použít k tomu, aby se zadalo read_files
, které zjištěné columns se mají zahrnout do konečného odvozeného schema. Poskytnete-li prázdný řetězec, všechny partitioncolumnsjsou ignorovány.
Možnost schemaHints
může být také poskytnuta k přepsání odvozeného schema pro partitioncolumn.
Formáty TEXT
a BINARYFILE
mají pevné schema, ale read_files
se také pokusí odvodit dělení těchto formátů, pokud je to možné.
Využití ve streamování tables
read_files
lze použít při streamování tables k nahrávání souborů do Delta Lake.
read_files
využívá Auto Loader při použití ve streamovaném dotazu table. Musíte použít STREAM
klíčové slovo s read_files
. Další podrobnosti najdete v tématu Co je automatický zavaděč?
Při použití ve streamovacím dotazu read_files
použije vzorek dat k odvození schemaa může vyvíjet schema, protože zpracovává více dat. Další podrobnosti najdete v tématu Konfigurace schema odvozování a vývoje v automatickém zavaděči.
Možnosti
- Základní možnosti
- Obecné možnosti
-
JSON
volby -
CSV
volby -
XML
volby -
PARQUET
volby -
AVRO
volby -
BINARYFILE
volby -
TEXT
volby -
ORC
volby - Možnosti streamování
Základní možnosti
Možnost |
---|
format Typ: String Formát datového souboru ve zdrojové cestě. Pokud není k dispozici, automaticky se odvodí. Mezi povolené values patří: - avro : Soubor Avro- binaryFile : Binární soubor- csv : Čtení souborů CSV- json : Soubor JSON- orc : SOUBOR ORC- parquet : Čtení souborů Parquet pomocí Azure Databricks- text : Textové soubory- xml : Čtení a zápis souborů XMLVýchozí hodnota: None |
inferColumnTypes Typ: Boolean Zda odvodit přesné typy column při využití odvozování schema. Ve výchozím nastavení se při odvozování datových sad JSON a CSV odvozují columns. Další podrobnosti najdete v schema odvození. Všimněte si, že toto je opak výchozího automatického zavaděče. Výchozí hodnota: true |
partitionColumns Typ: String partition columns stylu Hive list oddělené čárkami partitioncolumns, které chcete odvodit z adresářové struktury souborů. Styl Hive partitioncolumns jsou páry klíč-hodnota spojené znaménkem rovnosti, jako je například <base-path>/a=x/b=1/c=y/file.format . V tomto příkladu jsou partitioncolumnsa , b a c . Ve výchozím nastavení se tyto columns automaticky přidají do vašeho schema, pokud používáte inferenci schema a poskytnete <base-path> pro načtení dat. Pokud zadáte schema, automatický zavaděč očekává, že tyto columns budou zahrnuty do schema. Pokud tyto columns nechcete používat jako součást schema, můžete určit "" k ignorování těchto columns. Tuto možnost můžete použít také v případě, že chcete, aby columns odvodil cestu k souboru ve složitých adresářových strukturách, například v následujícím příkladu:<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 Určení cloudFiles.partitionColumns , jak year,month,day se vrátíyear=2022 pro file1.csv , ale month a day columns budou null .month a day bude správně analyzován pro file2.csv a file3.csv .Výchozí hodnota: None |
schemaHints Typ: String Schema informace, které zadáte automatickému zavaděči během schema inferenci. Další podrobnosti najdete v poznámkách schema. Výchozí hodnota: None |
useStrictGlobber Typ: Boolean Zda použít striktní globber, který odpovídá výchozímu chování globbingu jiných zdrojů souborů v Apache Sparku. Další podrobnosti najdete v tématu Běžné vzorce načítání dat. K dispozici ve službě Databricks Runtime 12.2 LTS a novějších. Všimněte si, že toto je opak výchozího nastavení automatického zavaděče. Výchozí hodnota: true |
Obecné možnosti
Následující možnosti platí pro všechny formáty souborů.
Možnost |
---|
ignoreCorruptFiles Typ: Boolean Zda se mají ignorovat poškozené soubory. Pokud je hodnota true, úlohy Sparku se budou dál spouštět při výskytu poškozených souborů a obsah, který jste si přečetli, se vrátí. Pozorovatelný jako numSkippedCorruptFiles voperationMetrics
column historie Delta Lake. K dispozici ve službě Databricks Runtime 11.3 LTS a vyšší.Výchozí hodnota: false |
ignoreMissingFiles Typ: Boolean Zda se mají ignorovat chybějící soubory. Pokud je hodnota true, úlohy Sparku se budou dál spouštět při výskytu chybějících souborů a obsah, který byl přečtený, se vrátí. K dispozici ve službě Databricks Runtime 11.3 LTS a vyšší. Výchozí hodnota: false (true pro COPY INTO ) |
modifiedAfter Zadejte: Timestamp String například 2021-01-01 00:00:00.000000 UTC+0 Volitelné časové razítko pro ingestování souborů, které mají časové razítko změny po zadaném časovém razítku. Výchozí hodnota: None |
modifiedBefore Zadejte: Timestamp String například 2021-01-01 00:00:00.000000 UTC+0 Volitelné časové razítko pro ingestování souborů, které mají časové razítko změny před zadaným časovým razítkem. Výchozí hodnota: None |
pathGlobFilter nebo fileNamePattern Typ: String Potenciální vzor globu, který se má poskytnout pro výběr souborů. Ekvivalent k PATTERN v COPY INTO .
fileNamePattern lze použít v read_files .Výchozí hodnota: None |
recursiveFileLookup Typ: Boolean Zda se má během schema odvozování přeskočit partition odvozování. To nemá vliv na to, které soubory jsou načteny. Výchozí hodnota: false |
JSON
volby
Možnost |
---|
allowBackslashEscapingAnyCharacter Typ: Boolean Zda povolit zpětné lomítko řídicí libovolný znak, který je úspěšný. Pokud není povoleno, můžou být řídicí znaky, které jsou explicitně uvedeny ve specifikaci JSON. Výchozí hodnota: false |
allowComments Typ: Boolean Bez ohledu na to, jestli chcete povolit použití komentářů ke stylu Jazyka Java, C a C++ ( '/' , '*' a '//' odrůd) v rámci analyzovaného obsahu, nebo ne.Výchozí hodnota: false |
allowNonNumericNumbers Typ: Boolean Zda povolit tokeny set not-a-number ( NaN ) jako platné číslo values.Výchozí hodnota: true |
allowNumericLeadingZeros Typ: Boolean Určuje, jestli chcete, aby integrální čísla začínala dalšími (ignorovatelnými) nulami (například 000001 ).Výchozí hodnota: false |
allowSingleQuotes Typ: Boolean Zda povolit použití jednoduchých uvozovek (apostrof, znak '\' ) pro uvádění řetězců (názvů a řetězců values).Výchozí hodnota: true |
allowUnquotedControlChars Typ: Boolean Jestli chcete povolit, aby řetězce JSON obsahovaly nepotřebné řídicí znaky (ZNAKY ASCII s hodnotou menší než 32, včetně znaků tabulátoru a odřádkování), nebo ne. Výchozí hodnota: false |
allowUnquotedFieldNames Typ: Boolean Určuje, jestli chcete povolit použití necitovaných názvů polí (které jsou povoleny JavaScriptem, ale ne specifikací JSON). Výchozí hodnota: false |
badRecordsPath Typ: String Cesta k ukládání souborů pro záznam informací o špatných záznamech JSON. Výchozí hodnota: None |
columnNameOfCorruptRecord Typ: String column pro ukládání záznamů, které jsou poškozené a nelze je analyzovat. Pokud je mode pro analýzu set ve formě DROPMALFORMED , pak tato column bude prázdná.Výchozí hodnota: _corrupt_record |
dateFormat Typ: String Formát pro analýzu řetězců kalendářních dat. Výchozí hodnota: yyyy-MM-dd |
dropFieldIfAllNull Typ: Boolean Zda se mají ignorovat columns všech values null nebo prázdných polí a struktur během schema odvození. Výchozí hodnota: false |
encoding nebo charset Typ: String Název kódování souborů JSON. Informace o list možností najdete v java.nio.charset.Charset . Nelze použít UTF-16 a UTF-32 kdy multiline je true .Výchozí hodnota: UTF-8 |
inferTimestamp Typ: Boolean Zda vyzkoušet a odvodit řetězce časového razítka TimestampType jako . Když set dotrue , schema odvození může trvat výrazně déle. Musíte povolit cloudFiles.inferColumnTypes použití s automatickým zavaděčem.Výchozí hodnota: false |
lineSep Typ: String Řetězec mezi dvěma po sobě jdoucími záznamy JSON. Výchozí hodnota: Žádný, který pokrývá \r , \r\n a \n |
locale Typ: String java.util.Locale
identifier. Ovlivňuje výchozí datum, časové razítko a parsování desetinných míst v rámci JSON.Výchozí hodnota: US |
mode Typ: String Režim analyzátoru pro zpracování poškozených záznamů Jeden z , z 'PERMISSIVE' ,'DROPMALFORMED' nebo 'FAILFAST' .Výchozí hodnota: PERMISSIVE |
multiLine Typ: Boolean Určuje, jestli záznamy JSON pokrývají více řádků. Výchozí hodnota: false |
prefersDecimal Typ: Boolean Pokud je to možné, pokusí se řetězce odvodit jako DecimalType plovoucí nebo dvojitý typ. Musíte také použít schema inference, například povoleníminferSchema nebo s cloudFiles.inferColumnTypes automatickým zavaděčem.Výchozí hodnota: false |
primitivesAsString Typ: Boolean Zda odvodit primitivní typy, jako jsou čísla a logické hodnoty jako StringType .Výchozí hodnota: false |
readerCaseSensitive Typ: Boolean Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud je pravda, zachránit data columns, jehož názvy se liší od názvu schemapouze velikostí písmen; v opačném případě čtěte data nezávisle na velikosti písmen. K dispozici v Databricks Runtime13.3 a vyšší. Výchozí hodnota: true |
rescuedDataColumn Typ: String Zda se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu nebo neshody schema (včetně velikosti písmen column) do samostatné column. Ve výchozím nastavení je tato column zahrnuta při použití Automatického zaváděče. Další podrobnosti najdete v tématu Co jsou zachráněná data column?. Výchozí hodnota: None |
singleVariantColumn Typ: String Určuje, jestli se má ingestovat celý dokument JSON, parsovaný do jednoho column Variant s daným řetězcem jako názvem column. Pokud je tato možnost zakázaná, pole JSON se budou ingestovat do vlastních columns. Výchozí hodnota: None |
timestampFormat Typ: String Formát pro analýzu řetězců časových razítek. Výchozí hodnota: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Typ: String Používá java.time.ZoneId se při analýze časových razítek a kalendářních dat.Výchozí hodnota: None |
CSV
volby
Možnost |
---|
badRecordsPath Typ: String Cesta k ukládání souborů pro záznam informací o špatných záznamech CSV. Výchozí hodnota: None |
charToEscapeQuoteEscaping Typ: Char Znak použitý k řídicímu znaku použitému pro uvozovky. Například pro následující záznam: [ " a\\", b ] - Pokud je znak k řídicímu znaku '\' nedefinovaný, záznam nebude analyzován. Analyzátor přečte znaky: [a],[\],["],[,],[ ],[b] a vyvolá chybu, protože nemůže najít pravou uvozovku.- Pokud je znak pro escape '\' definován jako '\' , záznam bude přečten se 2 values: [a\] a [b] .Výchozí hodnota: '\0' |
columnNameOfCorruptRecord Podporováno pro automatický načítač. Nepodporuje se pro COPY INTO .Typ: String column pro ukládání záznamů, které jsou poškozené a nelze je analyzovat. Pokud je mode pro analýzu set jako DROPMALFORMED , bude tato column prázdná.Výchozí hodnota: _corrupt_record |
comment Typ: Char Definuje znak, který představuje komentář řádku při nalezení na začátku řádku textu. Slouží '\0' k zakázání vynechání komentářů.Výchozí hodnota: '\u0000' |
dateFormat Typ: String Formát pro analýzu řetězců kalendářních dat. Výchozí hodnota: yyyy-MM-dd |
emptyValue Typ: String Řetězcové znázornění prázdné hodnoty Výchozí hodnota: "" |
encoding nebo charset Typ: String Název kódování souborů CSV. Informace o možnostech najdete v java.nio.charset.Charset list.
UTF-16 a UTF-32 nelze ji použít, pokud multiline je true .Výchozí hodnota: UTF-8 |
enforceSchema Typ: Boolean Zda má být vynuceno použití specifikovaného nebo odvozeného schema pro soubory CSV. Pokud je tato možnost povolená, záhlaví souborů CSV se ignorují. Tato možnost se ve výchozím nastavení ignoruje při použití Auto Loaderu k záchraně dat a povolení evoluce schema. Výchozí hodnota: true |
escape Typ: Char Řídicí znak, který se má použít při analýze dat. Výchozí hodnota: '\' |
header Typ: Boolean Určuje, jestli soubory CSV obsahují záhlaví. Auto Loader předpokládá, že soubory mají hlavičky při odvození schema. Výchozí hodnota: false |
ignoreLeadingWhiteSpace Typ: Boolean Zda se mají ignorovat úvodní prázdné znaky pro každou analyzovanou hodnotu. Výchozí hodnota: false |
ignoreTrailingWhiteSpace Typ: Boolean Zda se mají ignorovat koncové prázdné znaky pro každou analyzovanou hodnotu. Výchozí hodnota: false |
inferSchema Typ: Boolean Zda odvodit datové typy z analyzovaných záznamů CSV nebo předpokládat, že všechny columns jsou StringType . Vyžaduje další předávání dat, pokud settrue . V případě automatického zavaděče použijte cloudFiles.inferColumnTypes místo toho.Výchozí hodnota: false |
lineSep Typ: String Řetězec mezi dvěma po sobě jdoucími záznamy CSV. Výchozí hodnota: Žádný, který pokrývá \r , \r\n a \n |
locale Typ: String java.util.Locale
identifier. Ovlivňuje výchozí datum, časové razítko a parsování desetinných míst v rámci sdíleného svazku clusteru.Výchozí hodnota: US |
maxCharsPerColumn Typ: Int Maximální počet znaků očekávaných od hodnoty k analýze Lze použít k zabránění chybám paměti. Výchozí hodnota -1 znamená neomezenou hodnotu.Výchozí hodnota: -1 |
maxColumns Typ: Int Tvrdé limit omezení, kolik columns záznamů může mít. Výchozí hodnota: 20480 |
mergeSchema Typ: Boolean Zda chcete odvodit schema napříč více soubory a sloučit schema každého souboru. Ve výchozím nastavení je automatický zavaděč povolen při odvozování hodnoty schema. Výchozí hodnota: false |
mode Typ: String Režim analyzátoru pro zpracování poškozených záznamů Jeden z , z 'PERMISSIVE' ,'DROPMALFORMED' a 'FAILFAST' .Výchozí hodnota: PERMISSIVE |
multiLine Typ: Boolean Určuje, jestli záznamy CSV pokrývají více řádků. Výchozí hodnota: false |
nanValue Typ: String Řetězcové vyjádření hodnoty, která není číslo, při analýze FloatType a DoubleType columns.Výchozí hodnota: "NaN" |
negativeInf Typ: String Řetězcové znázornění záporného nekonečna při parsování FloatType nebo DoubleType columns.Výchozí hodnota: "-Inf" |
nullValue Typ: String Řetězcové vyjádření hodnoty null Výchozí hodnota: "" |
parserCaseSensitive (zastaralé)Typ: Boolean Při čtení souborů určete, zda má být zarovnání columns deklarované v záhlaví a schema citlivé na velká a malá písmena. Toto nastavení je true ve výchozím nastavení automatického zavaděče.
Columns, které se liší podle případu, budou v rescuedDataColumn v případě povolení záchrany. Tato možnost byla zastaralá ve prospěch readerCaseSensitive .Výchozí hodnota: false |
positiveInf Typ: String Řetězcové vyjádření kladného nekonečna při parsování FloatType nebo DoubleType columns.Výchozí hodnota: "Inf" |
preferDate Typ: Boolean Pokusí se odvodit řetězce jako kalendářní data místo časového razítka, pokud je to možné. Musíte také použít schema odvozování, a to buď povolením inferSchema , nebo použitímcloudFiles.inferColumnTypes s automatickým zavaděčem.Výchozí hodnota: true |
quote Typ: Char Znak použitý pro únik oddělovače pole valueswhere je součástí hodnoty. Výchozí hodnota: " |
readerCaseSensitive Typ: Boolean Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud to platí, zachraň data columns, jejichž názvy se liší podle velikosti písmen od schema; v opačném případě čti data bez ohledu na velikost písmen.Výchozí hodnota: true |
rescuedDataColumn Typ: String Zda shromáždit všechna data, která nelze analyzovat kvůli neshodě datového typu a neshodě schema (včetně formátování column), na samostatný column. Tato column je ve výchozím nastavení zahrnuta při použití Auto Loaderu. Další podrobnosti najdete v tématu Co jsou zachráněná data? column. Výchozí hodnota: None |
sep nebo delimiter Typ: String Řetězec oddělovače mezi columns. Výchozí hodnota: "," |
skipRows Typ: Int Počet řádků od začátku souboru CSV, které by se měly ignorovat (včetně komentářů a prázdných řádků). Pokud header je hodnota true, záhlaví bude první vynechaný a nekommentovaný řádek.Výchozí hodnota: 0 |
timestampFormat Typ: String Formát pro analýzu řetězců časových razítek. Výchozí hodnota: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Typ: String Používá java.time.ZoneId se při analýze časových razítek a kalendářních dat.Výchozí hodnota: None |
unescapedQuoteHandling Typ: String Strategie pro zpracování nepotřebných uvozovek. Povolené možnosti: - STOP_AT_CLOSING_QUOTE : Pokud jsou ve vstupu nalezeny neuskutečené uvozovky, nashromážděte znak uvozovky a pokračujte parsováním hodnoty jako uvozovky, dokud se nenajde pravá uvozovka.- BACK_TO_DELIMITER : Pokud jsou ve vstupu nalezeny neuskutečené uvozovky, zvažte hodnotu jako necitovanou hodnotu. Tím se analyzátoru nahromáždí všechny znaky aktuální analyzované hodnoty, dokud se nenajde oddělovač definovaný pomocí sep . Pokud se v hodnotě nenajde žádný oddělovač, analyzátor bude pokračovat ve shromažďování znaků ze vstupu, dokud se nenajde oddělovač nebo konec řádku.- STOP_AT_DELIMITER : Pokud jsou ve vstupu nalezeny neuskutečené uvozovky, zvažte hodnotu jako necitovanou hodnotu. Tím se analyzátoru nahromáždí všechny znaky, dokud se ve vstupu nenajde oddělovač definovaný oddělovačem sep nebo konce řádku.- SKIP_VALUE : Pokud jsou ve vstupu nalezeny neescapované uvozovky, obsah analyzovaný pro danou hodnotu se přeskočí (dokud se nenajde další oddělovač) a hodnota set v nullValue bude místo toho vytvořena.- RAISE_ERROR : Pokud jsou ve vstupu nalezeny neuskutečené uvozovky,TextParsingException bude vyvolán.Výchozí hodnota: STOP_AT_DELIMITER |
XML
volby
Možnost | Popis | Obor |
---|---|---|
rowTag |
Značka řádku souborů XML, která má být považována za řádek. V příkladu XML <books> <book><book>...<books> je book příslušná hodnota . Tato možnost je povinná. |
přečteno |
samplingRatio |
Definuje část řádků použitých pro schema inferenci. Předdefinované funkce XML tuto možnost ignorují. Výchozí hodnota: 1.0 . |
přečteno |
excludeAttribute |
Zda vyloučit atributy v prvcích. Výchozí hodnota: false . |
přečteno |
mode |
Režim práce s poškozenými záznamy během analýzyPERMISSIVE : U poškozených záznamů umístí poškozený řetězec do pole nakonfigurovaného columnNameOfCorruptRecord pomocí a nastaví poškozená pole na null hodnotu . Chcete-li zachovat poškozené záznamy, můžete set pole typu string s názvem columnNameOfCorruptRecord v uživatelsky definovaném schema. Pokud schema pole nemá, během analýzy se zahodí poškozené záznamy. Při odvození schemaanalyzátor implicitně přidá pole columnNameOfCorruptRecord ve výstupním schema.DROPMALFORMED : Ignoruje poškozené záznamy. Tento režim není podporován pro předdefinované funkce XML.FAILFAST : Vyvolá výjimku, když analyzátor splňuje poškozené záznamy. |
přečteno |
inferSchema |
Pokud true , pokusí se odvodit odpovídající typ pro každý výsledný datový rámec column. Pokud false , všechny výsledné columns jsou typu string . Výchozí:true . Předdefinované funkce XML tuto možnost ignorují. |
přečteno |
columnNameOfCorruptRecord |
Umožňuje přejmenování nového pole, které obsahuje poškozený řetězec vytvořený uživatelemPERMISSIVE režim. Výchozí hodnota: spark.sql.columnNameOfCorruptRecord . |
přečteno |
attributePrefix |
Předpona atributů k rozlišení atributů od prvků. Toto bude předpona pro názvy polí. Výchozí hodnota je _ . Může být prázdný pro čtení XML, ale ne pro zápis. |
čtení, zápis |
valueTag |
Značka použitá pro data znaků v elementech, které mají také atributy nebo podřízené elementy. Uživatel může zadat pole valueTag v schema, nebo se toto pole automaticky přidá během odvozování schema, pokud jsou u prvků s jinými elementy či atributy přítomna textová data. Výchozí: _VALUE |
čtení, zápis |
encoding |
Pro čtení dekóduje soubory XML daným typem kódování. Pro zápis určuje kódování (znakovou sadu) uložených souborů XML. Předdefinované funkce XML tuto možnost ignorují. Výchozí hodnota: UTF-8 . |
čtení, zápis |
ignoreSurroundingSpaces |
Definuje, zda mají být při čtení z values vynechány okolní prázdné mezery. Výchozí hodnota: true . Data znaků pouze prázdných znaků se ignorují. |
přečteno |
rowValidationXSDPath |
Cesta k volitelnému souboru XSD, který se používá k ověření XML pro každý řádek jednotlivě. Řádky, které se nepodaří ověřit, se považují za parsované chyby jako výše. XSD nemá jinak vliv na zadané schema nebo odvozené. | přečteno |
ignoreNamespace |
Pokud true jsou předpony oborů názvů u elementů a atributů XML ignorovány. Značky <abc:author> a <def:author> , například, jsou považovány za to, že oba jsou jen <author> . Obory názvů nelze u elementu rowTag ignorovat, pouze jeho podřízené položky pro čtení. Analýza XML není v oboru názvů ani v případě, že false . Výchozí hodnota: false . |
přečteno |
timestampFormat |
Vlastní řetězec formátu časového razítka, který se řídí formátem vzoru data a času. To platí pro timestamp typ. Výchozí hodnota: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] . |
čtení, zápis |
timestampNTZFormat |
Uživatelský formátovací řetězec pro časové razítko, které neobsahuje timezone a řídí se vzorem formátu pro datum a čas. To platí pro typ TimestampNTZType. Výchozí:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
čtení, zápis |
dateFormat |
Vlastní řetězec formátu data, který se řídí formátem vzoru datetime. To platí pro typ data. Výchozí hodnota: yyyy-MM-dd . |
čtení, zápis |
locale |
Nastaví národní prostředí jako značku jazyka ve formátu IETF BCP 47. Používá se například locale při analýze kalendářních dat a časových razítek. Výchozí hodnota: en-US . |
přečteno |
rootTag |
Kořenová značka souborů XML. Například v <books> <book><book>...</books> , odpovídající hodnota je books . Základní atributy můžete zahrnout zadáním hodnoty, jako books foo="bar" je . Výchozí hodnota: ROWS . |
zápis |
declaration |
Obsah deklarace XML pro zápis na začátku každého výstupního souboru XML před rootTag . Například hodnota foo příčin <?xml foo?> , které se mají zapsat.
Set k prázdnému řetězci, který se má potlačit. Výchozí: version="1.0" encoding="UTF-8" standalone="yes" . |
zápis |
arrayElementName |
Název elementu XML, který při psaní uzavře každý prvek pole s hodnotou column. Výchozí hodnota: item . |
zápis |
nullValue |
Nastaví řetězcovou reprezentaci hodnoty null. Výchozí hodnota: řetězec null . V takovém případě null analyzátor nezapisuje atributy a prvky pro pole. |
čtení, zápis |
compression |
Komprimační kód, který se použije při ukládání do souboru. Může to být jeden ze známých zkrácených názvů bez rozlišování velkých a malých písmen (none , , bzip2 gzip ,lz4 , snappy a)deflate ). Předdefinované funkce XML tuto možnost ignorují. Výchozí hodnota: none . |
zápis |
validateName |
Pokud je true, vyvolá chybu při ověření názvu elementu XML. Například názvy polí SQL můžou mít mezery, ale názvy elementů XML nemohou. Výchozí:true . |
zápis |
readerCaseSensitive |
Určuje chování citlivosti případu při povolení rescuedDataColumn. Pokud je pravda, že názvy dat columns se liší podle velikosti písmen od schema, zachraň je; v opačném případě přečtěte data bez ohledu na rozlišení velkých a malých písmen. Výchozí hodnota: true . |
přečteno |
rescuedDataColumn |
Zda se mají shromažďovat všechna data, která nelze parsovat kvůli neshodě datového typu a neshodě schema (včetně rozdílů v psaní velkých a malých písmen column), do samostatného column. Tato column je ve výchozím nastavení zahrnuta při použití Automatického Zavaděče. Další podrobnosti najdete v tématu Co jsou záchranná data column?. Výchozí hodnota: Žádné. | přečteno |
PARQUET
volby
Možnost |
---|
datetimeRebaseMode Typ: String Řídí znovubasování DATUM a TIMESTAMP values mezi juliánským a proleptickým gregoriánským kalendářem. Povolené values: EXCEPTION , LEGACY aCORRECTED .Výchozí hodnota: LEGACY |
int96RebaseMode Typ: String Řídí přepracování časového razítka INT96 values ve Juliánském a Proleptickém Gregoriánském kalendáři. Povolené values: EXCEPTION , LEGACY aCORRECTED .Výchozí hodnota: LEGACY |
mergeSchema Typ: Boolean Zda chcete odvodit schema napříč více soubory a sloučit schema každého souboru. Výchozí hodnota: false |
readerCaseSensitive Typ: Boolean Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud je podmínka splněna, zachraňte data columns, jejichž názvy se liší pouze velikostí písmen od schema; v opačném případě čtěte data bez rozlišování velkých a malých písmen.Výchozí hodnota: true |
rescuedDataColumn Typ: String Zda se mají všechna data, která nelze analyzovat kvůli neshodě datového typu a neshodě schema (včetně rozdílů v podobě column), shromažďovat k samostatnému column. Tato column je ve výchozím nastavení zahrnuta při použití Automatického zavaděče. Další podrobnosti najdete v tématu Co jsou zachráněná data column?. Výchozí hodnota: None |
AVRO
volby
Možnost |
---|
avroSchema Typ: String Volitelné schema poskytnuté uživatelem ve formátu Avro. Při čtení Avro lze tuto možnost set vyvinout k schema, který je kompatibilní, ale liší se od skutečného Avro schema. Deserializace schema bude konzistentní s vyvinutým schema. Představte si například, že set evolvovaný schema obsahuje jeden další column s výchozí hodnotou; výsledek čtení pak bude obsahovat i nový column. Výchozí hodnota: None |
datetimeRebaseMode Typ: String Řídí přenastavení DATUMU a TIMESTAMPU values mezi Juliánským a Proleptickým gregoriánským kalendářem. Povolené values: EXCEPTION , LEGACY a...CORRECTED .Výchozí hodnota: LEGACY |
mergeSchema Typ: Boolean Zda chcete odvodit schema napříč více soubory a sloučit schema každého souboru. mergeSchema pro Avro neuvolní datové typy.Výchozí hodnota: false |
readerCaseSensitive Typ: Boolean Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud je to pravda, zachránit data columns, jejichž názvy se liší od schemapodle velikosti písmen; v opačném případě data číst bez rozlišování velkých a malých písmen.Výchozí hodnota: true |
rescuedDataColumn Typ: String Zda shromažďovat všechna data, která nelze zpracovat kvůli neshodě datového typu a neshodě schema (včetně velikostí písma column) do samostatného column. Tato column je ve výchozím nastavení obsažena při použití Auto Loader. Další podrobnosti najdete v tématu Co jsou záchranná data column?. Výchozí hodnota: None |
BINARYFILE
volby
Binární soubory nemají žádné další možnosti konfigurace.
TEXT
volby
Možnost |
---|
encoding Typ: String Název kódování souborů TEXT. Podívejte se na java.nio.charset.Charset pro list možností.Výchozí hodnota: UTF-8 |
lineSep Typ: String Řetězec mezi dvěma po sobě jdoucími záznamy TEXT. Výchozí hodnota: Žádný, který pokrývá \r , \r\n a \n |
wholeText Typ: Boolean Určuje, jestli se má soubor číst jako jeden záznam. Výchozí hodnota: false |
ORC
volby
Možnost |
---|
mergeSchema Typ: Boolean Zda chcete odvodit schema napříč více soubory a sloučit schema každého souboru. Výchozí hodnota: false |
Možnosti streamování
Tyto možnosti platí při použití read_files
uvnitř streamovaného table nebo streamovaného dotazu.
Možnost |
---|
allowOverwrites Typ: Boolean Zda se mají po zjišťování znovu zpracovat soubory, které byly změněny. Nejnovější dostupná verze souboru se zpracuje během refresh, pokud byla změněna od posledního úspěšného spuštění dotazu refresh. Výchozí hodnota: false |
includeExistingFiles Typ: Boolean Zda zahrnout existující soubory do vstupní cesty zpracování datového proudu nebo zpracovat pouze nové soubory přicházející po počátečním nastavení. Tato možnost se vyhodnotí jenom při prvním spuštění datového proudu. Změna této možnosti po restartování streamu nemá žádný vliv. Výchozí hodnota: true |
maxBytesPerTrigger Typ: Byte String Maximální početnovýchch Můžete zadat bajtový řetězec, například od 10g do limit, pro každý mikrobatch až 10 GB dat. Jedná se o měkké maximum. Pokud máte soubory, které jsou 3 GB, Azure Databricks zpracuje 12 GB v mikrobatchu. Při použití společně s maxFilesPerTrigger azure Databricks spotřebovává až nižší limitmaxFilesPerTrigger nebo maxBytesPerTrigger podle toho, co je dosaženo jako první.Poznámka: U streamovaných tables vytvořených v bezserverových skladech SQL by tato možnost a maxFilesPerTrigger neměly být set k využití dynamického řízení přístupu, které se škáluje podle velikosti úloh a bezserverových výpočetních prostředků, abyste získali nejlepší latenci a výkon.Výchozí hodnota: None |
maxFilesPerTrigger Typ: Integer Maximální počet novýchsouborůch Při použití společně s maxBytesPerTrigger azure Databricks spotřebovává až nižší limitmaxFilesPerTrigger nebo maxBytesPerTrigger podle toho, co je dosaženo jako první.Poznámka: Pro streamování tables vytvořená v bezserverových SQL skladech by tato možnost a maxBytesPerTrigger neměly být set, aby se využilo dynamického řízení přístupu, které se škáluje podle velikosti úloh a bezserverových výpočetních prostředků, což vám poskytne nejlepší latenci a výkon.Výchozí hodnota: 1000 |
schemaEvolutionMode Typ: String Způsob, jak vyvinout schema, když jsou v datech objeveny nové columns. Ve výchozím nastavení se columns při odvozování datových sad JSON interpretují jako řetězce. Další podrobnosti naleznete ve vývoji schema. Tato možnost se nevztahuje na text soubory a binaryFile soubory.Výchozí hodnota: "addNewColumns" , pokud není zadaný schema."none" jinak. |
schemaLocation Typ: String Místo pro uložení odvozeného schema a následných změn. Další podrobnosti k schema inferenci najdete zde. Při použití ve streamovacím dotazu table se umístění schema nevyžaduje. Výchozí hodnota: None |
Příklady
-- 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);