CSV 文字列を含む列を指定されたスキーマに基づいて行に解析します。 文字列を解析できない場合は null を返します。
構文
from pyspark.sql import functions as sf
sf.from_csv(col, schema, options=None)
パラメーター
| パラメーター | タイプ | Description |
|---|---|---|
col |
pyspark.sql.Column または str |
CSV 形式の列または列名。 |
schema |
pyspark.sql.Column または str |
CSV 列の解析時に使用する、DDL 形式のスキーマを含む列または Python 文字列リテラル。 |
options |
dict、省略可能 | 解析を制御するオプション。 CSV データソースと同じオプションを受け入れます。 |
返品ポリシー
pyspark.sql.Column: 解析された CSV 値の列。
例示
例 1: 単純な CSV 文字列の解析
from pyspark.sql import functions as sf
data = [("1,2,3",)]
df = spark.createDataFrame(data, ("value",))
df.select(sf.from_csv(df.value, "a INT, b INT, c INT")).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+
例 2: schema_of_csvを使用してスキーマを推論する
from pyspark.sql import functions as sf
data = [("1,2,3",)]
value = data[0][0]
df.select(sf.from_csv(df.value, sf.schema_of_csv(value))).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+
例 3: CSV 文字列の先頭の空白を無視する
from pyspark.sql import functions as sf
data = [(" abc",)]
df = spark.createDataFrame(data, ("value",))
options = {'ignoreLeadingWhiteSpace': True}
df.select(sf.from_csv(df.value, "s string", options)).show()
+---------------+
|from_csv(value)|
+---------------+
| {abc}|
+---------------+
例 4: 欠損値を含む CSV 文字列の解析
from pyspark.sql import functions as sf
data = [("1,2,",)]
df = spark.createDataFrame(data, ("value",))
df.select(sf.from_csv(df.value, "a INT, b INT, c INT")).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, NULL}|
+---------------+
例 5: 区切り記号が異なる CSV 文字列を解析する
from pyspark.sql import functions as sf
data = [("1;2;3",)]
df = spark.createDataFrame(data, ("value",))
options = {'delimiter': ';'}
df.select(sf.from_csv(df.value, "a INT, b INT, c INT", options)).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+