在 PySpark 数据框中添加一个可为空的列 [英] Adding a nullable column in PySpark dataframe
本文介绍了在 PySpark 数据框中添加一个可为空的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 Spark 中,文字列在添加时不可为空:
In Spark, literal columns, when added, are not nullable:
from pyspark.sql import SparkSession, functions as F
spark = SparkSession.builder.getOrCreate()
df = spark.createDataFrame([(1,)], ['c1'])
df = df.withColumn('c2', F.lit('a'))
df.printSchema()
# root
# |-- c1: long (nullable = true)
# |-- c2: string (nullable = false)
如何创建可为空的列?
推荐答案
我发现的最短方法 - 使用 when
(otherwise
子句似乎不需要):
The shortest method I've found - using when
(the otherwise
clause seems not needed):
df = df.withColumn('c2', F.when(F.lit(1).isNotNull(), F.lit('a')))
完整测试结果:
from pyspark.sql import SparkSession, functions as F
spark = SparkSession.builder.getOrCreate()
df = spark.createDataFrame([(1,)], ['c1'])
df = df.withColumn('c2', F.when(F.lit(1).isNotNull(), F.lit('a')))
df.show()
# +---+---+
# | c1| c2|
# +---+---+
# | 1| a|
# +---+---+
df.printSchema()
# root
# |-- c1: long (nullable = true)
# |-- c2: string (nullable = true)
这篇关于在 PySpark 数据框中添加一个可为空的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文