Megosztás a következőn keresztül:


A from_csv függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Szerkezetértéket ad vissza a csvStr és schema elemekkel.

Szintaxis

from_csv(csvStr, schema [, options])

Argumentumok

  • csvStr: A CSV-adatok sorát meghatározó KARAKTERLÁNC-kifejezés.
  • schema: Egy STRING literál vagy a schema_of_csv függvény meghívása.
  • options: Nem kötelező MAP<STRING,STRING> literál, amely irányelveket határoz meg.

Visszatérítések

A sémadefiníciónak megfelelő mezőneveket és típusokat tartalmazó STRUCT.

csvStr jól kell formálva lennie a schema és a options tekintetében. schema vesszővel tagolt oszlopnévként és adattípus-párként kell definiálni, például CREATE TABLE.

options, ha meg van adva, az alábbiak bármelyike lehet:

  • sep (alapértelmezett ,): minden mezőhöz és értékhez beállít egy elválasztót. Ez az elválasztó lehet egy vagy több karakter.
  • encoding (alapértelmezett UTF-8): a CSV-fájlokat a megadott kódolási típus szerint dekódolja.
  • quote (alapértelmezett "): egyetlen karaktert állít be az idézett értékek elől való meneküléshez, ahol az elválasztó az érték része lehet. Ha ki szeretné kapcsolni az idézőjeleket, nem null értéket, hanem üres sztringet kell beállítania. Ez a viselkedés eltér a com.databricks.spark.csv-től.
  • escape (alapértelmezett \): egyetlen karaktert állít be, amelyet az idézőjelek egy már idézett értéken belüli meneküléséhez használnak.
  • charToEscapeQuoteEscaping (alapértelmezett escape vagy \0): egyetlen karaktert állít be, amely az idézőjel menekülésének megkerülésére szolgál. Az alapértelmezett érték a feloldó karakter, ha escape a quote karakterek eltérőek, \0 ellenkező esetben.
  • comment (alapértelmezett üres sztring): egyetlen karaktert állít be a karakterrel kezdődő sorok kihagyásához. Alapértelmezés szerint le van tiltva.
  • fejléc (alapértelmezett false): az első sort használja oszlopok neveként.
  • enforceSchema (alapértelmezett true): Ha igaz értékre van állítva, a rendszer kényszerítetten alkalmazza a megadott vagy a következtetett sémát az adatforrásfájlokra, a CSV-fájlok fejléceit pedig figyelmen kívül hagyja. Ha a beállítás értéke hamis, akkor a rendszer ellenőrzi a sémát a CSV-fájlok összes fejléce alapján abban az esetben, ha a fejlécbeállítás értéke igaz. A séma mezőneveit és a CSV-fejlécekben lévő oszlopneveket a pozícióik alapján ellenőrizzük, figyelembe véve spark.sql.caseSensitive. Bár az alapértelmezett érték igaz, javasoljuk, hogy a helytelen eredmények elkerülése érdekében tiltsa le a enforceSchema beállítást.
  • inferSchema (alapértelmezett false): a bemeneti sémát automatikusan az adatokból következteti. Ehhez egy további adatátadásra van szükség.
  • samplingRatio (alapértelmezett 1.0): a sémakövető sorok töredékét határozza meg.
  • ignoreLeadingWhiteSpace (alapértelmezett false): egy jelző, amely jelzi, hogy ki kell-e hagyni a szóközöket az olvasási értékekből.
  • ignoreTrailingWhiteSpace (alapértelmezett false): egy jelző, amely jelzi, hogy ki kell-e hagyni az olvasott értékekből származó szóközöket.
  • nullValue (alapértelmezett üres sztring): null érték sztring-ábrázolását állítja be.
  • emptyValue (alapértelmezett üres sztring): egy üres érték sztring-ábrázolását állítja be.
  • nanValue (alapértelmezett NaN): egy nem számérték sztring-ábrázolását állítja be.
  • positiveInf (alapértelmezett Inf): egy pozitív végtelenérték sztring-ábrázolását állítja be.
  • negativeInf (alapértelmezett -Inf): a negatív végtelen érték szöveges ábrázolását állítja be.
  • dateFormat (alapértelmezett yyyy-MM-dd): beállítja a dátumformátumot jelző sztringet. Az egyéni dátumformátumok a Datetime-minták formátumait követik. Ez a dátumtípusra vonatkozik.
  • timestampFormat (alapértelmezett yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): beállítja az időbélyeg formátumát jelző sztringet. Az egyéni dátumformátumok a Datetime-minták formátumait követik. Ez az időbélyeg típusára vonatkozik.
  • maxColumns (alapértelmezett 20480): meghatározza, hogy egy rekord hány oszlopot tartalmazhat.
  • maxCharsPerColumn (alapértelmezett -1): a megadott olvasási értékekhez megengedett karakterek maximális számát határozza meg. Alapértelmezés szerint -1, ami korlátlan hosszt jelent
  • unescapedQuoteHandling (alapértelmezett STOP_AT_DELIMITER): azt határozza meg, hogy a CSV-elemző hogyan kezeli az értékeket kibontatlan idézőjelekkel.
    • STOP_AT_CLOSING_QUOTE: Ha a bemenetben nem definiált idézőjelek találhatók, halmozza fel az idézőjelet, és folytassa az érték idézőjelként való elemzését, amíg meg nem talál egy záró idézőjelet.
    • BACK_TO_DELIMITER: Ha nem kimenekített idézőjelek találhatók a bemenetben, az értéket tekintse idézőjel nélküli értéknek. Ezzel az elemző az aktuális elemzési érték összes karakterét összegyűjti, amíg meg nem találja a határolót. Ha az érték nem tartalmaz elválasztójelet, az elemző a karaktereket addig halmozza a bemenetből, amíg elválasztó vagy vonalvégződés nem található.
    • STOP_AT_DELIMITER: Ha nem beágyazott idézőjelek találhatók a bemenetben, vegye figyelembe az értéket nem kvótált értékként. Ezzel az elemző összes karaktert halmoz fel, amíg a határoló vagy egy sorvégződés nem található a bemenetben.
    • STOP_AT_DELIMITER: Ha a bemenetben nem beágyazott idézőjelek találhatók, a program kihagyja a megadott értékhez elemezett tartalmat, és ehelyett a nullValue megadott értéket állítja elő.
    • RAISE_ERROR: Ha a bemenetben nem kibontott idézőjelek találhatók, a függvény egy TextParsingException értéket ad.
  • mode (alapértelmezett PERMISSIVE): lehetővé teszi a sérült rekordok elemzés közbeni kezelését. A következő kis- és nagybetűfüggetlen módokat támogatja. A Spark oszlopmetszés során csak a szükséges oszlopokat próbálja elemezni a CSV-ben. Ezért a sérült rekordok a szükséges mezők választéka alapján eltérőek lehetnek. Ez a viselkedés szabályozható spark.sql.csv.parser.columnPruning.enabled (alapértelmezés szerint engedélyezve).
    • PERMISSIVE: ha egy sérült rekordnak felel meg, a hibásan formázott sztringet egy , által columnNameOfCorruptRecordkonfigurált mezőbe helyezi, és null értékre állítja a hibásan formázott mezőket. A sérült rekordok megőrzéséhez egy felhasználó által definiált sémában beállíthat egy "columnNameOfCorruptRecord" nevű karakterlánc típusú mezőt. Ha egy séma nem rendelkezik a mezővel, az elemzés során a sérült rekordokat elveti. A sémánál kevesebb vagy több tokennel rendelkező rekord nem tekinthető sérült rekordnak a CSV-ben. Amikor egy rekorddal találkozik, amely kevesebb tokenből áll, mint a séma hossza, null értéket állít be a plusz mezőkre. Amikor a rekord több tokennel rendelkezik, mint a séma hossza, elveti a felesleges tokeneket.
    • FAILFAST: kivételt eredményez, ha sérült rekordoknak felel meg.
  • columnNameOfCorruptRecord (az alapértelmezett érték az spark.sql.columnNameOfCorruptRecord): lehetővé teszi az PERMISSIVE mód által létrehozott hibás sztringet tartalmazó új mező átnevezését. Ez felülírja spark.sql.columnNameOfCorruptRecord.
  • multiLine (alapértelmezett false): Elemezze egy rekordot, amely több sorra is kiterjedhet.
  • locale (alapértelmezett en-US): nyelvi címkeként állítja be a területi beállításokat IETF BCP 47 formátumban. Ez például a dátumok és időbélyegek elemzésekor használatos.
  • lineSep (alapértelmezés szerint az összes \r, \r\nés \n): az elemzéshez használandó sorelválasztót határozza meg. A maximális hossz 1 karakter.
  • pathGlobFilter: nem kötelező glob minta, amely csak a mintának megfelelő elérési utakkal rendelkező fájlokat tartalmazza. A szintaxis a org.apache.hadoop.fs.GlobFilter-t követi. Ez nem változtatja meg a partíciófelderítés viselkedését.

Példák

> 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}