Sdílet prostřednictvím


read_files table-valued – funkce

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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, PARQUETBINARYFILE, 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: A STRING 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 pathpolož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 schemaoddí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

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í a zápis do souborů CSV
* json: Soubor JSON
* orc: SOUBOR ORC
* parquet: Čtení souborů Parquet pomocí Azure Databricks
* text: Textové soubory
* xml: Čtení a zápis souborů XML

Vý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 asloupce oddílů , ba 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 v
operationMetrics 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 Stringnapří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 Stringnapří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 TimestampTypejako . Při nastavení na
true, 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\na \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ím
inferSchema 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 Runtime
13.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
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 truehodnotu . 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\na \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 -1znamená 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ím
cloudFiles.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 sepnebo 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 bookpří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ýzy

PERMISSIVE: U poškozených záznamů umístí poškozený řetězec do pole nakonfigurovaného columnNameOfCorruptRecordpomocí a nastaví poškozená pole na nullhodnotu . 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 truese pokusí odvodit odpovídající typ pro každý výsledný sloupec datového rámce. Pokud falsejsou 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živatelem
PERMISSIVE 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 truejsou 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ě nullanalyzá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 se jednat o jeden ze známých zkrácených názvů bez rozlišování velkých a malých písmen (none, bzip2, gzip, ,lz4snappy', and<br> 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, LEGACYa
CORRECTED.

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, LEGACYa
CORRECTED.

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, LEGACYa
CORRECTED.

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ě maxFilesPerTriggers 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ě maxBytesPerTriggers 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);