使用 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
更加紧凑和可读
我是 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
更加紧凑和可读