read_files
table-valued – 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
, PARQUET
BINARYFILE
, AVRO
, a ORC
formáty souborů.
Dokáže automaticky rozpoznat formát souboru a odvodit jednotné schéma 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 pro nastavení možnosti. Přijímá literály a skalární funkce.
Návraty
Tabulka, která se skládá z dat ze souborů přečtených pod danou path
položkou .
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 znakové sady {a,b,c}. |
[a-z] |
Odpovídá jednomu znaku z rozsahu znaků {a... z}. |
[^a] |
Odpovídá jednomu znaku, který není ze znakové sady nebo rozsahu {a}. Všimněte si, že ^ znak musí nastat okamžitě napravo od levé závorky. |
{ab,cd} |
Odpovídá řetězci ze sady řetězců {ab, cd}. |
{ab,c{de, fh}} |
Odpovídá řetězci ze sady řetězců {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 |
Odvozování schémat
Schéma souborů lze explicitně poskytnout read_files
s schema
možností. Pokud schéma není k dispozici, read_files
pokusí se odvodit jednotné schéma ve zjištěných souborech, které vyžaduje čtení všech souborů, pokud LIMIT
není použit příkaz. I když používáte LIMIT
dotaz, může se přečíst větší sada souborů, než je potřeba, aby se vrátilo reprezentativnější schéma 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á.
Tuto schemaHints
možnost lze použít k opravě podmnožina odvozeného schématu. Další podrobnosti najdete v tématu Přepsání odvozování schématu s nápovědou schématu.
Ve výchozím nastavení je k dispozici funkce A rescuedDataColumn
pro záchranu všech dat, která neodpovídají schématu. Další podrobnosti najdete v části Co je záchranný sloupec dat? Nastavení možnosti schemaEvolutionMode => 'none'
můžete vyřaditrescuedDataColumn
.
Odvození schématu oddílů
read_files
může také odvodit dělení sloupců , pokud jsou soubory uloženy v adresářích ve stylu Hive, to znamená /column_name=column_value/
. schema
Pokud je k dispozici, zjištěné sloupce oddílů používají typy uvedené v souboru schema
. Pokud sloupce oddílů nejsou součástí zadaného schema
oddílu, budou odvozené sloupce oddílů ignorovány.
Pokud sloupec existuje ve schématu oddílu i ve sloupcích dat, použije se hodnota načtená z hodnoty oddílu místo datové hodnoty. Pokud chcete ignorovat hodnoty pocházející z adresáře a použít datový sloupec, můžete zadat seznam sloupců oddílů v seznamu odděleném čárkami s partitionColumns
možností.
Tuto partitionColumns
možnost lze použít také k instrukci read_files
, které zjištěné sloupce mají být zahrnuty do konečného odvozeného schématu. Poskytnutí prázdného řetězce ignoruje všechny sloupce oddílů.
Můžete schemaHints
také zadat možnost přepsání odvozeného schématu pro sloupec oddílu.
Tyto TEXT
formáty BINARYFILE
mají pevné schéma, ale read_files
pokud je to možné, pokusí se také odvodit dělení těchto formátů.
Využití v streamovaných tabulkách
read_files
lze použít ve streamovaných tabulkách k ingestování souborů do Delta Lake. read_files
Využívá automatický zavaděč při použití v dotazu tabulky streamování. 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í v streamovacím dotazu read_files
použije ukázku dat k odvození schématu a může vyvíjet schéma, protože zpracovává více dat. Další podrobnosti najdete v tématu Konfigurace odvozování schématu a vývoj v auto loaderu .
Možnosti
- Základní možnosti
- Obecné možnosti
JSON
volbyCSV
volbyXML
volbyPARQUET
volbyAVRO
volbyBINARYFILE
volbyTEXT
volbyORC
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é hodnoty 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 Určuje, zda se mají při odvozování schématu odvozovat přesné typy sloupců. Ve výchozím nastavení se sloupce odvozují při odvození datových sad JSON a CSV. Další podrobnosti najdete v části odvozování schématu. Všimněte si, že toto je opak výchozího automatického zavaděče. Výchozí hodnota: true |
partitionColumns Typ: String Čárkami oddělený seznam sloupců oddílů stylu Hive, které byste chtěli odvodit z adresářové struktury souborů. Sloupce oddílů stylu Hive jsou páry klíč-hodnota zkombinované znaménkem rovnosti, například <base-path>/a=x/b=1/c=y/file.format . V tomto příkladu jsou a sloupce oddílů , b a c . Ve výchozím nastavení se tyto sloupce automaticky přidají do schématu, pokud používáte odvozování schématu <base-path> a poskytujete pro načtení dat. Pokud zadáte schéma, automatický zavaděč očekává, že budou tyto sloupce zahrnuty do schématu. Pokud nechcete, aby tyto sloupce byly součástí schématu, můžete tyto sloupce ignorovat "" . Tuto možnost můžete použít také v případě, že chcete, aby sloupce odvodily 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 day sloupce budou null .month a day bude správně analyzován pro file2.csv a file3.csv .Výchozí hodnota: None |
schemaHints Typ: String Informace o schématu, které zadáte automatickému zavaděče během odvození schématu Další podrobnosti najdete v nápovědě schématu . 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 sloupec 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 Určuje, jestli se má během odvozování schématu přeskočit odvozování oddílů. 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 Určuje, jestli se má sada tokenů not a-a-number ( NaN ) povolit jako číselné hodnoty s plovoucí desetinou čárkou.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 uvozovky (názvy a řetězcové hodnoty).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 Sloupec pro ukládání záznamů, které jsou poškozené a nelze je analyzovat. mode Pokud je analýza nastavená jako DROPMALFORMED , bude tento sloupec 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 Určuje, jestli chcete ignorovat sloupce všech hodnot null nebo prázdných polí a struktur během odvozování schématu. Výchozí hodnota: false |
encoding nebo charset Typ: String Název kódování souborů JSON. Seznam java.nio.charset.Charset možností najdete v tématu. 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 . Při nastavení natrue , odvození schématu 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 Identifikátor java.util.Locale . 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 odvození schématu, a to buď 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, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu; v opačném případě čte data bez rozlišování velkých a malých písmen. K dispozici v Databricks Runtime13.3 a vyšší. Výchozí hodnota: true |
rescuedDataColumn Typ: String Jestli chcete shromáždit všechna data, která nelze analyzovat kvůli neshodě datového typu nebo neshodě schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití automatického zavaděče. Další podrobnosti najdete v části Co je zachráněný datový sloupec?. Výchozí hodnota: None |
singleVariantColumn Typ: String Určuje, jestli chcete ingestovat celý dokument JSON, parsovaný do jednoho sloupce Variant s daným řetězcem jako názvem sloupce. Pokud je tato možnost zakázaná, pole JSON se ingestují do vlastních sloupců. 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 řídicí znak '\' definován jako '\' , záznam bude přečteno se 2 hodnotami: [a\] a [b] .Výchozí hodnota: '\0' |
columnNameOfCorruptRecord > [! POZNÁMKA] >> Podporováno pro automatický zavaděč. Nepodporuje se pro COPY INTO .Typ: String Sloupec pro ukládání záznamů, které jsou poškozené a nelze je analyzovat. mode Pokud je analýza nastavená jako DROPMALFORMED , bude tento sloupec 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. Podívejte java.nio.charset.Charset se na seznam možností. UTF-16 a UTF-32 nelze ji použít, pokud multiline je true .Výchozí hodnota: UTF-8 |
enforceSchema Typ: Boolean Zda se má vynuceně použít zadané nebo odvozené schéma u souborů 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í automatického zavaděče k záchraně dat a povolení vývoje schématu. 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í. Automatický zavaděč předpokládá, že soubory mají při odvození schématu hlavičky. 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 chcete odvodit datové typy analyzovaných záznamů CSV nebo předpokládat, že všechny sloupce jsou . StringType Vyžaduje další předávání dat, pokud je nastaveno na true hodnotu . 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 Identifikátor java.util.Locale . 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 Pevný limit počtu sloupců, které může záznam obsahovat. Výchozí hodnota: 20480 |
mergeSchema Typ: Boolean Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů. Při odvození schématu je ve výchozím nastavení povoleno automatické zavaděče. 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 sloupcích.Výchozí hodnota: "NaN" |
negativeInf Typ: String Řetězcové znázornění záporného nekonečna při analýze FloatType nebo DoubleType sloupcích.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ů, zda chcete zarovnat sloupce deklarované v záhlaví s rozlišováním velkých a malých písmen schématu. Toto nastavení je true ve výchozím nastavení automatického zavaděče. Sloupce, které se liší podle případu, se v rescuedDataColumn případě povolení zachorání. 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 analýze FloatType nebo DoubleType sloupcích.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 odvození schématu, 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 escaping hodnoty, kde oddělovač polí je součástí hodnoty. Výchozí hodnota: " |
readerCaseSensitive Typ: Boolean Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu; v opačném případě čte data bez rozlišování velkých a malých písmen.Výchozí hodnota: true |
rescuedDataColumn Typ: String Určuje, jestli se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu a neshody schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití automatického zavaděče. Další podrobnosti najdete v části Co je záchranný sloupec dat?. Výchozí hodnota: None |
sep nebo delimiter Typ: String Řetězec oddělovače mezi sloupci. 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 neuskutečněné uvozovky, obsah analyzovaný pro danou hodnotu se přeskočí (dokud se nenajde další oddělovač) a místo toho se vytvoří hodnota nastavená nullValue .* 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á. |
čtení |
samplingRatio |
Definuje zlomek řádků používaných pro odvozování schématu. Předdefinované funkce XML tuto možnost ignorují. Výchozí hodnota: 1.0 . |
čtení |
excludeAttribute |
Zda vyloučit atributy v prvcích. Výchozí hodnota: false . |
čtení |
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 nastavit string pole typu pojmenované columnNameOfCorruptRecord ve schématu definovaném uživatelem. Pokud schéma pole neobsahuje, během analýzy se zahodí poškozené záznamy. Při odvození schématu analyzátor implicitně přidá columnNameOfCorruptRecord pole ve výstupním schématu.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. |
čtení |
inferSchema |
Pokud true se pokusí odvodit odpovídající typ pro každý výsledný sloupec datového rámce. Pokud false jsou všechny výsledné sloupce typu string . Výchozí:true . Předdefinované funkce XML tuto možnost ignorují. |
čtení |
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 . |
čtení |
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 valueTag pole ve schématu nebo se automaticky přidá během odvozování schématu, když jsou data znaků přítomna v prvcích s jinými prvky nebo atributy. 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, jestli se mají vynechat okolní prázdné znaky z hodnot, které se čtou. Výchozí hodnota: true . Data znaků pouze prázdných znaků se ignorují. |
čtení |
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 jinak nemá vliv na zadané schéma ani na odvození. | čtení |
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 . |
čtení |
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 |
Řetězec vlastního formátu pro časové razítko bez časového pásma, které se řídí formátem vzoru data a času. 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 . |
čtení |
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. Nastavte prázdný řetězec, který chcete 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 sloupce s hodnotou pole. 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, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu; v opačném případě čte data bez rozlišování velkých a malých písmen. Výchozí hodnota: true . |
čtení |
rescuedDataColumn |
Jestli chcete shromáždit všechna data, která nelze analyzovat kvůli neshodě datového typu a neshodě schématu (včetně písmen sloupců) k samostatnému sloupci. Tento sloupec je ve výchozím nastavení zahrnutý při použití automatického zavaděče. Další podrobnosti najdete v tématu Co je záchranná datová sloupec?. Výchozí hodnota: Žádné. | čtení |
PARQUET
volby
Možnost |
---|
datetimeRebaseMode Typ: String Řídí znovubasování hodnot DATE a TIMESTAMP mezi Julianem a Proleptic gregoriánskými kalendáři. Povolené hodnoty: EXCEPTION , LEGACY aCORRECTED .Výchozí hodnota: LEGACY |
int96RebaseMode Typ: String Řídí znovubasování hodnot časového razítka INT96 mezi Julianem a Proleptic gregoriánskými kalendáři. Povolené hodnoty: EXCEPTION , LEGACY aCORRECTED .Výchozí hodnota: LEGACY |
mergeSchema Typ: Boolean Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů. Výchozí hodnota: false |
readerCaseSensitive Typ: Boolean Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu; v opačném případě čte data bez rozlišování velkých a malých písmen.Výchozí hodnota: true |
rescuedDataColumn Typ: String Určuje, jestli se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu a neshody schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití automatického zavaděče. Další podrobnosti najdete v části Co je záchranný sloupec dat?. Výchozí hodnota: None |
AVRO
volby
Možnost |
---|
avroSchema Typ: String Volitelné schéma poskytované uživatelem ve formátu Avro Při čtení Avro lze tuto možnost nastavit na vyvinuté schéma, které je kompatibilní, ale liší se se skutečným schématem Avro. Schéma deserializace bude konzistentní s vyvíjeným schématem. Pokud například nastavíte vyvíjené schéma obsahující jeden další sloupec s výchozí hodnotou, výsledek čtení bude obsahovat i nový sloupec. Výchozí hodnota: None |
datetimeRebaseMode Typ: String Řídí znovubasování hodnot DATE a TIMESTAMP mezi Julianem a Proleptic gregoriánskými kalendáři. Povolené hodnoty: EXCEPTION , LEGACY aCORRECTED .Výchozí hodnota: LEGACY |
mergeSchema Typ: Boolean Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů. 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 pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu; v opačném případě čte data bez rozlišování velkých a malých písmen.Výchozí hodnota: true |
rescuedDataColumn Typ: String Určuje, jestli se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu a neshody schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití automatického zavaděče. Další podrobnosti najdete v části Co je záchranný sloupec dat?. 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. Seznam java.nio.charset.Charset možností najdete v tématu.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 Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů. Výchozí hodnota: false |
Možnosti streamování
Tyto možnosti platí při použití read_files
v tabulce streamování nebo dotazu streamování.
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 aktualizace, pokud byla změněna od posledního úspěšného spuštění dotazu aktualizace. 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 10g omezit jednotlivé mikrobatchy na 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ě maxFilesPerTrigger s Azure Databricks spotřebovává až nižší limit maxFilesPerTrigger nebo maxBytesPerTrigger , podle toho, co je dosaženo jako první.Poznámka: U streamovaných tabulek vytvořených v bezserverových skladech SQL by tato možnost maxFilesPerTrigger neměla být nastavená tak, aby využívala dynamické ří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ě maxBytesPerTrigger s Azure Databricks spotřebovává až nižší limit maxFilesPerTrigger nebo maxBytesPerTrigger , podle toho, co je dosaženo jako první.Poznámka: U streamovaných tabulek vytvořených v bezserverových skladech SQL by tato možnost maxBytesPerTrigger neměla být nastavená tak, aby využívala dynamické ří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: 1000 |
schemaEvolutionMode Typ: String Režim pro vývoj schématu, protože v datech jsou zjištěny nové sloupce. Ve výchozím nastavení se sloupce při odvozování datových sad JSON odvozují jako řetězce. Další podrobnosti najdete v vývoji schématu. Tato možnost se nevztahuje na text soubory a binaryFile soubory.Výchozí hodnota: "addNewColumns" pokud schéma není zadané."none" jinak. |
schemaLocation Typ: String Umístění pro uložení odvozeného schématu a následných změn. Další podrobnosti najdete v části odvozování schématu. Umístění schématu není vyžadováno při použití v dotazu tabulky streamování. 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);