使用 StructType 为 Pyspark.sql 设置架构时的语法

Syntax while setting schema for Pyspark.sql using StructType

我是 spark 的新手,正在玩 Pyspark.sql。根据 pyspark.sql 文档 here,可以像这样设置 Spark 数据帧和模式:

spark= SparkSession.builder.getOrCreate()
from pyspark.sql.types import StringType, IntegerType, 
StructType, StructField

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 列表中代表什么?我似乎无法在文档中找到它。提前致谢

表示该列是否允许空值,true为可空,false为不可空

StructField(name, dataType, nullable): Represents a field in a StructType. The name of a field is indicated by name. The data type of a field is indicated by dataType. nullable is used to indicate if values of this fields can have null values.

参考Spark SQL and DataFrame Guide了解更多信息。

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

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

关于数据类型字符串的文档不多,但他们在 docs 中提到了它们。它们比 StructTypes

更加紧凑和可读