我在spark中有一个Dataframe,其中有一个不可为空的列。当我将它保存到配置单元,然后从配置单元读取它时,不可为null的列是可为null的。有什么问题吗?
对于某些上下文,我使用一个现有的dataframe并将其模式更改为包含none nullable属性。
df = spark.table("myhive_table")
df.printSchema()
=> root
|-- col1: string (nullable = true)
|-- col2: string (nullable = true)
schema = StructType([StructField("col1",spark_types.StringType(), True),
StructField("col2",spark_types.DoubleType(), False),
])
df2 = spark.createDataFrame(df.rdd,schema)
df2.printSchema()
=> root
|-- col1: string (nullable = true)
|-- col2: string (nullable = false)
spark.sql('drop table myhive_table')
df.write.saveAsTable("myhive_table",overwrite = True)
spark.table("myhive_table").printSchema()
=> root
|-- col1: string (nullable = true)
|-- col2: string (nullable = true)
暂无答案!
目前还没有任何答案,快来回答吧!