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

CSVのスキーマ

CSV 文字列を解析し、そのスキーマを DDL 形式で推測します。

構文

Python
from pyspark.sql import functions as sf

sf.schema_of_csv(csv, options=None)

パラメーター

パラメーター

Type

説明

csv

pyspark.sql.Column または文字列

CSV 文字列または CSV 文字列を含む折りたたみ可能な文字列列。

options

辞書(オプション)

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

戻り値

pyspark.sql.Column: 指定された CSV から解析されたStructTypeの文字列表現。

例 1 : 異なるデータ型のCSV文字列のスキーマを推測する

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1|a|true'), {'sep':'|'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1|a|true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

例2 : 欠損値を持つCSV文字列のスキーマを推論する

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1||true'), {'sep':'|'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1||true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

例 3 : 異なる区切り文字を使用したCSV文字列のスキーマの推測

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1;a;true'), {'sep':';'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1;a;true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

例 4 : フィールドを引用符で囲んだCSV文字列のスキーマの推測

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('"1","a","true"'), {'sep':','})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv("1","a","true") |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+