from_csv
CSV 文字列を含む列を、指定されたスキーマを持つ行に解析します。文字列を解析できない場合はnullを返します。
構文
Python
from pyspark.sql import functions as sf
sf.from_csv(col, schema, options=None)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| CSV 形式の列または列名。 |
|
| CSV 列を解析するときに使用する列、または DDL 形式のスキーマを持つ Python 文字列リテラル。 |
| 辞書(オプション) | 解析を制御するためのオプション。CSV データソースと同じオプションを受け入れます。 |
戻り値
pyspark.sql.Column: 解析された CSV 値の列。
例
例 1 : 単純なCSV文字列の解析
Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+
例2 : schema_of_csvを使用してスキーマを推測する
Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+
例 3 : CSV文字列の先頭の空白を無視する
Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {abc}|
+---------------+
例4 : 欠損値を持つCSV文字列の解析
Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, NULL}|
+---------------+
例 5 : 異なる区切り文字を使用したCSV文字列の解析
Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+