Sdílet prostřednictvím


Funkce from_csv

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Vrátí hodnotu struktury s hodnotou csvStr a schema.

Syntaxe

from_csv(csvStr, schema [, options])

Argumenty

  • csvStr: Výraz STRING určující řádek dat CSV.
  • schema: Literál STRING nebo vyvolání schema_of_csv funkce.
  • options: Volitelný MAP<STRING,STRING> literál určující direktivy.

Návraty

Struktura s názvy polí a typy odpovídající definici schématu.

csvStr by měly být dobře vytvořeny s ohledem na a schema options. schema musí být definován jako názvy sloupců oddělených čárkami a páry datových typů, jak se používá například CREATE TABLE.

options, pokud je uvedeno, může být některá z těchto možností:

  • sep (výchozí ,): nastaví oddělovač pro každé pole a hodnotu. Tento oddělovač může být jeden nebo více znaků.
  • encoding (výchozí UTF-8): dekóduje soubory CSV zadaným typem kódování.
  • quote (výchozí "): nastaví jeden znak použitý pro zapouzdření uvozových hodnot, kde oddělovač může být součástí hodnoty. Pokud chcete vypnout uvozovky, musíte nastavit hodnotu null, ale prázdný řetězec. Toto chování se liší od com.databricks.spark.csv.
  • escape (výchozí \): nastaví jeden znak použitý pro uvozovky uvnitř již citované hodnoty.
  • charToEscapeQuoteEscaping (výchozí escape nebo \0): nastaví jeden znak použitý pro uvozovku pro uvozovku. Výchozí hodnota je řídicí znak, pokud escape se quote znaky liší, \0 jinak.
  • comment (výchozí prázdný řetězec): Nastaví jeden znak používaný pro přeskočení řádků začínajících tímto znakem. Ve výchozím nastavení je zakázaná.
  • header (default false): používá první řádek jako názvy sloupců.
  • enforceSchema (výchozí true): Pokud je nastavena na hodnotu true, zadané nebo odvozené schéma je vynuceně použito u souborů zdroje dat a hlavičky v souborech CSV se ignorují. Pokud je tato možnost nastavená na hodnotu false, schéma se ověří ve všech hlavicích v souborech CSV v případě, že je možnost hlavičky nastavená na true. Názvy polí v názvech schématu a sloupců v hlavičce CSV jsou kontrolovány jejich pozicemi s ohledem spark.sql.caseSensitivena . I když je výchozí hodnota true, doporučuje se zakázat možnost vynuceníSchema, aby se zabránilo nesprávným výsledkům.
  • inferSchema (výchozí false): odvodí vstupní schéma automaticky z dat. Vyžaduje další předání dat.
  • samplingRatio (výchozí hodnota 1,0): definuje zlomek řádků použitých pro odvození schématu.
  • ignoreLeadingWhiteSpace (výchozí false): příznak označující, zda mají být vynechány počáteční prázdné znaky z hodnot, které se čtou.
  • ignoreTrailingWhiteSpace (výchozí false): příznak označující, zda mají být přeskočeny koncové prázdné znaky z hodnot, které se čtou.
  • nullValue (výchozí prázdný řetězec): Nastaví řetězcovou reprezentaci hodnoty null.
  • emptyValue (výchozí prázdný řetězec): Nastaví řetězcovou reprezentaci prázdné hodnoty.
  • nanValue (výchozí NaN): nastaví řetězcovou reprezentaci nečíslové hodnoty.
  • positiveInf (výchozí Inf): nastaví řetězcovou reprezentaci kladné nekonečno hodnoty.
  • negativeInf (výchozí hodnota -Inf): nastaví řetězcovou reprezentaci záporné hodnoty nekonečna.
  • dateFormat (výchozí yyyy-MM-dd): nastaví řetězec, který označuje formát data. Vlastní formáty kalendářních dat se řídí formáty v vzorech datetime. To platí pro typ data.
  • timestampFormat (výchozí yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): nastaví řetězec, který označuje formát časového razítka. Vlastní formáty kalendářních dat se řídí formáty v vzorech datetime. To platí pro typ časového razítka.
  • maxColumns (výchozí 20480): definuje pevný limit počtu sloupců, které může záznam obsahovat.
  • maxCharsPerColumn (výchozí -1): definuje maximální počet znaků povolený pro každou zadanou hodnotu, která se čte. Ve výchozím nastavení je -1, což znamená neomezenou délku.
  • unescapedQuoteHandling (výchozí STOP_AT_DELIMITER): definuje, jak analyzátor CSV zpracovává hodnoty s unescaped uvozovkami.
    • 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í parsované hodnoty, dokud se nenajde oddělovač. 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 parser hromadí všechny znaky, dokud se ve vstupu nenajde oddělovač nebo konec řádku.
    • STOP_AT_DELIMITER: Pokud jsou ve vstupu nalezeny neuskutečené uvozovky, obsah analyzovaný pro zadanou hodnotu se přeskočí a místo toho se vytvoří hodnota nastavená nullValue .
    • RAISE_ERROR: Pokud jsou ve vstupu nalezeny nepotřebné uvozovky, TextParsingException je vyvolán.
  • mode (výchozí PERMISSIVE): Umožňuje režim pro práci s poškozenými záznamy během analýzy. Podporuje následující režimy nerozlišující malá a velká písmena. Spark se pokusí analyzovat jenom požadované sloupce ve sdíleném svazku clusteru pod vyřezáváním sloupců. Proto se poškozené záznamy můžou lišit v závislosti na požadované sadě polí. Toto chování je možné řídit spark.sql.csv.parser.columnPruning.enabled (ve výchozím nastavení povoleno).
    • PERMISSIVE: Když splňuje poškozený záznam, umístí poškozený řetězec do pole nakonfigurovaného columnNameOfCorruptRecordpomocí a nastaví poškozená pole na hodnotu null. Pokud chcete zachovat poškozené záznamy, může uživatel nastavit pole typu řetězce s názvem columnNameOfCorruptRecord ve schématu definovaném uživatelem. Pokud schéma pole neobsahuje, během analýzy zahodí poškozené záznamy. Záznam s méně nebo více tokeny než schéma není poškozený záznam do sdíleného svazku clusteru. Když splňuje záznam s menším počtem tokenů než délka schématu, nastaví hodnotu null na další pole. Pokud záznam obsahuje více tokenů, než je délka schématu, zahodí další tokeny.
    • FAILFAST: vyvolá výjimku, když splňuje poškozené záznamy.
  • columnNameOfCorruptRecord (výchozí hodnota je hodnota zadaná v spark.sql.columnNameOfCorruptRecord): Umožňuje přejmenování nového pole s poškozeným řetězcem vytvořeným režimem PERMISSIVE . Toto přepsání spark.sql.columnNameOfCorruptRecord.
  • multiLine (výchozí false): parsuje jeden záznam, který může zahrnovat více řádků.
  • locale (výchozí en-US): Nastaví národní prostředí jako značku jazyka ve formátu IETF BCP 47. Používá se například při analýze kalendářních dat a časových razítek.
  • lineSep (výchozí hodnota pokrývá vše \r, \r\na \n): definuje oddělovač čar, který se má použít k analýze. Maximální délka je 1 znak.
  • pathGlobFilter: Volitelný vzor globu, který bude obsahovat pouze soubory s cestami odpovídajícími vzoru. Syntaxe následuje org.apache.hadoop.fs.GlobFilter. Nemění chování zjišťování oddílů.

Příklady

> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
 {1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
 {"time":2015-08-26 00:00:00}