创建PySpark可为空的照明列

创建PySpark可为空的照明列,pyspark,google-bigquery,Pyspark,Google Bigquery,我有一个pyspark数据框,我想在其中添加一个新的lit列,如下所示 my_dataframe.select(col("col1"), lit("this is data").alias("col2")) 默认情况下,当我将其写入BigQuery时,lit列类型是string(良好),但模式是必需的(不良)。如何编写一个lit列并使BigQuery认为它是可空的?我的解决方法如下-寻找更干净的方法 my_dataframe.select(col("col1"), when(lit(1) ==

我有一个pyspark数据框,我想在其中添加一个新的lit列,如下所示

my_dataframe.select(col("col1"), lit("this is data").alias("col2"))
默认情况下,当我将其写入BigQuery时,lit列类型是string(良好),但模式是必需的(不良)。如何编写一个lit列并使BigQuery认为它是可空的?我的解决方法如下-寻找更干净的方法

my_dataframe.select(col("col1"), when(lit(1) == 1, lit("this is data")).alias("col2"))

您可以使用不同的架构创建新的数据帧:

my_dataframe = my_dataframe.select(col("col1"), when(lit(1) == 1, lit("this is data")).alias("col2"))

new_schema = [StructField('col1',StringType(),False), StructField('col2',StringType(),True)]

df2 = sqlContext.createDataFrame(my_dataframe.rdd, StructType(new_schema))

StructFields遵循以下语法:
StructField(“您可以使用不同的架构创建新的数据帧:

my_dataframe = my_dataframe.select(col("col1"), when(lit(1) == 1, lit("this is data")).alias("col2"))

new_schema = [StructField('col1',StringType(),False), StructField('col2',StringType(),True)]

df2 = sqlContext.createDataFrame(my_dataframe.rdd, StructType(new_schema))
StructFields遵循以下语法:
StructField('可能重复:\可能重复:\