【发布时间】:2021-07-29 14:56:58
【问题描述】:
在 Spark 中,文字列在添加时不能为空:
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)
如何创建可以为空的列?
【问题讨论】:
-
真正的问题是“为什么你需要一个点亮的空列...
-
就我而言,我需要创建与另一个数据框相同的架构,但其中包含不同的数据。这包括可空性。
-
那你为什么不直接创建一个模式呢?从 df.schema 开始。
-
我认为您应该使用原始用例创建另一个问题。目前,您正在尝试为您想象的解决方案寻求帮助,但可能不是正确的解决方案。它被称为XY_problem
-
抱歉,如果您无法想象一个用例,并不意味着它不存在。我遇到了这个问题并找到了答案here。然后我做得更好,所以我决定把它贴在这里。后来我阅读了更多内容,发现this highly-upvoted answer 解决了另一个问题。我认为这些案例证明了用例存在,无论人们可能遇到什么原始问题。我只是想帮助别人更容易找到答案。
标签: python apache-spark pyspark apache-spark-sql nullable