Sdílet prostřednictvím


Funkce from_csv

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto 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ý literál typu MAP<STRING,STRING> určující směrnice.

Návraty

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

csvStr by měl být dobře vytvořen s ohledem na schema a options. schema musí být definováno jako dvojice názvů sloupců a datových typů oddělené čárkami, jak se používá například v CREATE TABLE.

options, pokud je uvedeno, může být čímkoliv z následujících:

  • 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í znak používaný pro maskování uvozených hodnot, kde oddělovač může být součástí hodnoty. Pokud chcete vypnout uvozovky, musíte nastavit ne 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ý k uniknutí uvozovek uvnitř již citované hodnoty.
  • charToEscapeQuoteEscaping (výchozí escape nebo \0): nastaví jeden znak použitý pro únikový znak pro uvozovkový znak. Výchozí hodnota je escape znak, pokud se escape a quote znaky liší, jinak \0.
  • 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 (výchozí false): používá první řádek jako názvy sloupců.
  • enforceSchema (výchozí true): Pokud je nastavená 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í ve schématu a sloupcích v záhlavích CSV jsou kontrolovány jejich pozicemi s ohledem na spark.sql.caseSensitive. 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 se mají přeskočit počáteční prázdné znaky z načítaných hodnot.
  • ignoreTrailingWhiteSpace (výchozí false): příznak označující, zda se mají při čtení hodnot přeskočit koncové prázdné znaky.
  • 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čné 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 dat se řídí formáty ve vzorech formátů data a času. To platí pro typ data.
  • timestampFormat (výchozí yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): určuje řetězec, který naznačuje formát časového razítka. Vlastní formáty dat se řídí formáty ve vzorech formátů data a času. 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 neuzavřenými uvozovkami.
    • STOP_AT_CLOSING_QUOTE: Pokud jsou ve vstupu nalezeny nezakódované uvozovky, nashromážděte znak uvozovky a pokračujte v parsování hodnoty jako uvozované hodnoty, dokud se nenajde závěrečná uvozovka.
    • BACK_TO_DELIMITER: Pokud jsou ve vstupu nalezeny nezabalené uvozovky, považujte hodnotu za necitovanou. Analyzátor nahromadí všechny znaky právě analyzované hodnoty, dokud 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 nezabalené uvozovky, považujte hodnotu za necitovanou. Parser bude shromažďovat všechny znaky, dokud se v vstupních datech nenalezne oddělovač nebo konec řádku.
    • STOP_AT_DELIMITER: Pokud jsou ve vstupu nalezeny neregulérní uvozovky, obsah určený pro zadanou hodnotu se přeskočí a hodnota nastavená v nullValue se použije.
    • 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 pouze požadované sloupce v CSV při prořezávání sloupců. Proto se poškozené záznamy můžou lišit v závislosti na požadované sadě polí. Toto chování lze řídit spark.sql.csv.parser.columnPruning.enabled (ve výchozím nastavení povoleno).
    • PERMISSIVE: Když narazí na poškozený záznam, umístí poškozený řetězec do pole nakonfigurovaného pomocí columnNameOfCorruptRecord, a poškozená pole nastaví 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 ve formátu CSV. 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ž narazí na 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 v režimu PERMISSIVE. Toto přebíjí 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í objevení 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}