from_csv Funkció

A következőre vonatkozik:check marked yes Databricks SQL check marked yes Databricks Runtime

Egy szerkezetértéket a és schemaa értékkel ad csvStr vissza.

Szintaxis

from_csv(csvStr, schema [, options])

Argumentumok

  • csvStr: A CSV-adatok sorát meghatározó STRING-kifejezés.
  • schema: Sztringkonstans vagy schema_of_csv függvény meghívása.
  • options: Egy opcionális MAP<STRING,STRING> literál, amely direktívákat határoz meg.

Visszatérési érték

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

csvStr jól formázottnak kell lennie a schema és optionsa vonatkozásában. schema vesszővel tagolt oszlopnévként és adattípus-párként kell definiálni, CREATE TABLEpéldául: .

options, ha meg van adva, a következők bármelyike lehet:

  • sep (alapértelmezett ,): minden mezőhöz és értékhez beállít egy elválasztót. Ez az elválasztó karakter lehet egy vagy több karakter.
  • encoding (alapértelmezett UTF-8): a CSV-fájlokat a megadott kódolási típus alapján dekódolja.
  • quote (alapértelmezett "): egyetlen karaktert állít be az idézőjeles é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 -től com.databricks.spark.csv.
  • escape (alapértelmezett \): egyetlen karaktert állít be az idézőjelek egy már idézett értéken belüli meneküléséhez.
  • charToEscapeQuoteEscaping (alapértelmezett escape vagy \0): egyetlen karaktert állít be az idézőjel feloldójelének elhagyásához. Az alapértelmezett érték a feloldó karakter, ha escape a és quote a karakter eltérő, \0 egyébként.
  • comment (alapértelmezett üres sztring): egyetlen karaktert állít be, amellyel az ezzel a karakterrel kezdődő vonalakat kihagyja. Alapértelmezés szerint le van tiltva.
  • header (alapértelmezett false): az első sort használja oszlopok neveként.
  • enforceSchema (alapértelmezett true): Ha igaz értékre van állítva, a megadott vagy a kikövetkeztetett sémát kényszerített módon alkalmazza a rendszer az adatforrásfájlokra, és a CSV-fájlok fejléceit figyelmen kívül hagyja. Ha a beállítás false (hamis) értékre van állítva, a rendszer ellenőrzi a sémát a CSV-fájlok összes fejlécén abban az esetben, ha a fejlécbeállítás igaz értékre van állítva. A CSV-fejlécekben lévő séma- és oszlopnevek mezőneveit a pozícióik ellenőrzik, figyelembe spark.sql.caseSensitivevéve a következőt: . Bár az alapértelmezett érték igaz, javasoljuk, hogy tiltsa le a enforceSchema beállítást a helytelen eredmények elkerülése érdekében.
  • inferSchema (alapértelmezett false): a bemeneti sémát automatikusan az adatokból következteti ki. Ehhez egy további adatátadásra van szükség.
  • samplingRatio (alapértelmezett 1.0): a sémakövetkezéshez használt sorok töredékét határozza meg.
  • ignoreLeadingWhiteSpace (alapértelmezett false): egy jelző, amely azt jelzi, hogy ki kell-e hagyni a szóközöket az olvasási értékekből.
  • ignoreTrailingWhiteSpace (alapértelmezett false): egy jelző, amely azt jelzi, hogy az éppen beolvasott értékekből származó szóközöket ki kell-e hagyni.
  • nullValue (alapértelmezett üres sztring): a 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 sztringreprezentációját állítja be.
  • negativeInf (alapértelmezett -Inf): egy negatív végtelen érték sztringreprezentációjá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ákban szereplő formátumokat 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ákban szereplő formátumokat 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 értékek olvasásához engedélyezett karakterek maximális számát határozza meg. Alapértelmezés szerint -1, ami korlátlan hosszúságot 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 nem beágyazott idézőjeleket talál a bemenetben, halmozja fel az idézőjel karaktert, és folytassa az érték idézőjelként való elemzését, amíg nem talál záró idézőjelet.
    • BACK_TO_DELIMITER: Ha a bemenetben nem beágyazott idézőjelek találhatók, az értéket nem kvótált értékként kell figyelembe venni. Így az elemző összegyűjti az aktuális elemzett érték összes karakterét, amíg meg nem találja az elválasztó karaktert. Ha az érték nem tartalmaz elválasztójelet, az elemző addig gyűjti a karaktereket a bemenetből, amíg elválasztó vagy sorvégződés nem található.
    • STOP_AT_DELIMITER: Ha a bemenetben nem beágyazott idézőjelek találhatók, az értéket nem kvótált értékként kell figyelembe venni. Ezzel az elemző összes karaktert halmoz fel, amíg az elválasztó vagy egy sorvégződés nem található a bemenetben.
    • STOP_AT_DELIMITER: Ha nem beágyazott idézőjeleket talál a bemenetben, a rendszer kihagyja a megadott értékhez elemzett tartalmat, és a beírt nullValue értéket állítja elő.
    • RAISE_ERROR: Ha nem beágyazott idézőjeleket talál a bemenetben, TextParsingException a a lesz.
  • 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űket nem megkülönböztető módokat támogatja. A Spark csak a szükséges oszlopokat próbálja elemezni a CSV-ben az oszlopmetszés alatt. Ezért a sérült rekordok a kötelező mezőkészlet 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 helytelen formátumú sztringet egy , által columnNameOfCorruptRecordkonfigurált mezőbe helyezi, és a hibás formátumú mezőket null értékre állítja. A sérült rekordok megőrzéséhez a felhasználó beállíthat egy columnNameOfCorruptRecord nevű sztringtípus-mezőt egy felhasználó által definiált sémában. 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 tokent tartalmazó rekordok nem sérültek a CSV-ben. Ha egy olyan rekordnak felel meg, amelynek kevesebb tokenje van, mint a séma hossza, a null értéket további mezőkre állítja. Ha a rekord több jogkivonattal rendelkezik, mint a séma hossza, a további tokeneket elveti.
    • FAILFAST: kivételt jelez, ha sérült rekordoknak felel meg.
  • columnNameOfCorruptRecord (az alapértelmezett érték a következőben spark.sql.columnNameOfCorruptRecordvan megadva: ): lehetővé teszi az új mező átnevezését, amely a mód által PERMISSIVE létrehozott helytelen formátumú sztringet tartalmazza. Ez felülbírálja a parancsot 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ó vonalelválasztót határozza meg. A maximális hossz 1 karakter.
  • pathGlobFilter: egy nem kötelező glob minta, amely csak a mintának megfelelő elérési utakkal rendelkező fájlokat tartalmazza. A szintaxis a következő: org.apache.hadoop.fs.GlobFilter. 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}