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
Egy szerkezetet vagy variánsértéket ad vissza a csvStr elemezve schema használatával.
Szintaxis
from_csv(csvStr, schema [, options])
Argumentumok
-
csvStr: A CSV-adatok sorát meghatározó KARAKTERLÁNC-kifejezés. -
schema: Egy sztringkonstans vagy aschema_of_csvfü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 STRUCT mezőneveket és típusokat tartalmaz, amelyek megfelelnek a sémadefiníciónak, vagy egy VARIANT érték, ha a séma egyetlen Variant típus.
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. A Databricks Runtime 16.4 és újabb verzióiban, a schema egyetlen VARIANT típusként is definiálható. Ha például from_csv CSV-rekordokat szeretne beszúrni egy VARIANT oszlopba, olvassa el az Adatok beszúrása a használatával from_csvcímű témakört.
A lehetőségek teljes listáját a CSV-ben találja.
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értelmezettescapevagy\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, haescapeaquotekarakterek eltérőek,\0ellenkező 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. -
header(alapértelmezettfalse): Olvasáshoz az első sort használja az oszlopok neveként. Íráshoz első sorként az oszlopok nevét írja. A CSV beépített függvényei figyelmen kívül hagyják ezt a beállítást. -
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 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ő ö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 anullValuemegadott é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 , általcolumnNameOfCorruptRecordkonfigurá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 azPERMISSIVEmó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.
Ha a mode beállítás értéke FAILFAST, Azure Databricks MALFORMED_RECORD_IN_PARSING, ha a bemenet nem felel meg a sémának.
Gyakori hibafeltételek
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}
> SELECT from_csv('abc', 'a INT', map('mode', 'FAILFAST'));
Error: MALFORMED_RECORD_IN_PARSING