Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A
A következőkre vonatkozik: Databricks SQL
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 acom.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értelmezettescape
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, haescape
aquote
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értelmezetttrue
): 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évespark.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értelmezettfalse
): 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értelmezettfalse
): egy jelző, amely jelzi, hogy ki kell-e hagyni a szóközöket az olvasási értékekből. -
ignoreTrailingWhiteSpace
(alapértelmezettfalse
): 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értelmezettNaN
): egy nem számérték sztring-ábrázolását állítja be. -
positiveInf
(alapértelmezettInf
): 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értelmezettyyyy-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értelmezettyyyy-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értelmezett20480
): 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értelmezettSTOP_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 anullValue
megadott értéket állítja elő. -
RAISE_ERROR
: Ha a bemenetben nem kibontott idézőjelek találhatók, a függvény egyTextParsingException
értéket ad.
-
-
mode
(alapértelmezettPERMISSIVE
): 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 , általcolumnNameOfCorruptRecord
konfigurá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 azspark.sql.columnNameOfCorruptRecord
): lehetővé teszi azPERMISSIVE
mód által létrehozott hibás sztringet tartalmazó új mező átnevezését. Ez felülírjaspark.sql.columnNameOfCorruptRecord
. -
multiLine
(alapértelmezettfalse
): Elemezze egy rekordot, amely több sorra is kiterjedhet. -
locale
(alapértelmezetten-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 aorg.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}