メインコンテンツまでスキップ

from_csv

CSV 文字列を含む列を、指定されたスキーマを持つ行に解析します。文字列を解析できない場合はnullを返します。

構文

Python
from pyspark.sql import functions as sf

sf.from_csv(col, schema, options=None)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または文字列

CSV 形式の列または列名。

schema

pyspark.sql.Column または文字列

CSV 列を解析するときに使用する列、または DDL 形式のスキーマを持つ Python 文字列リテラル。

options

辞書(オプション)

解析を制御するためのオプション。CSV データソースと同じオプションを受け入れます。

パラメーター

Type

説明

col

pyspark.sql.Column または文字列

CSV 形式の列または列名。

schema

pyspark.sql.Column または文字列

CSV 列を解析するときに使用する列、または DDL 形式のスキーマを持つ Python 文字列リテラル。

options

辞書(オプション)

解析を制御するためのオプション。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}|
+---------------+
このページの見出し