我是新手,并且正在玩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
代表什么?我似乎无法在文档中找到它。提前致谢
答案 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相比,它们更加紧凑和可读性