
3.6
RDD
とのやりとり
45
3.6.2
プログラムからのスキーマの指定
それではこの例で、Spark SQLの デ ー タ 型(
pyspark.sql.types
)を取り入れ、多少の
.csv
デー
タを生成してスキーマをプログラムから指定してみましょう。
#
データ型のインポート
from pyspark.sql.types import *
#
カンマ区切りのデータの生成
stringCSVRDD = sc.parallelize([
(123, 'Katie', 19, 'brown'),
(234, 'Michael', 22, 'green'),
(345, 'Simone', 23, 'blue')
])
まずは次の
schema
変数にあるように
StructType
と
StructField
を使ってスキーマを定義します。
#
スキーマの指定
schema = StructType([
StructField("id", LongType(), True),
StructField("name", StringType(), True),
StructField("age", LongType(), True),
StructField("eyeColor", StringType(), True)
])
StructField
クラスが次の内容からなることに注意してください。
●
name
: フィールドの名前
●
dataType
: フィールドのデータ型
●
nullable
: このフィールドの値が nullに