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

Jas*_*son 17 apache-spark pyspark

我是新来的火花,正在玩Pyspark.sql.根据这里的pyspark.sql文档,可以像这样设置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)
Run Code Online (Sandbox Code Playgroud)

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

yjs*_*hen 18

这意味着列是否允许空值,true可空和false不可空

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

有关更多信息,请参阅Spark SQL和DataFrame指南.


pcv*_*pcv 5

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

schema = 'Name STRING, DateTime TIMESTAMP, Age INTEGER'
Run Code Online (Sandbox Code Playgroud)

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