使用StructType为Pyspark.sql设置模式时的语法

时间:2015-05-13 12:09:33

标签: apache-spark pyspark

我是新手,并且正在玩Pyspark.sql。根据pyspark.sql文档here,可以像这样设置Spark数据帧和架构:

rdd = sc.textFile('./some csv_to_play_around.csv'

schema = StructType([StructField('Name', StringType(), True),
                     StructField('DateTime', TimestampType(), True)
                     StructField('Age', IntegerType(), True)])

# create dataframe
df3 = sqlContext.createDataFrame(rdd, schema)

我的问题是,上面True列表中的schema代表什么?我似乎无法在文档中找到它。提前致谢

2 个答案:

答案 0 :(得分:17)

这意味着如果列允许空值,true表示可以为空,false表示不可为空

  

StructField(name,dataType,nullable):表示StructType中的字段。字段名称由名称表示。字段的数据类型由dataType指示。 nullable用于指示此字段的值是否可以具有空值。

有关更多信息,请参阅Spark SQL and DataFrame Guide

答案 1 :(得分:2)

您还可以使用数据类型字符串:

schema = 'Name STRING, DateTime TIMESTAMP, Age INTEGER'

关于数据类型字符串的文档并不多,但是他们在docs中提到了它们。与StructTypes相比,它们更加紧凑和可读性