如何将不可为null的Dataframe保存到配置单元表中?

6tdlim6h  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(272)

我在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)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题