pyspark.sql.utils.AnalysisException: 引用 'title' 不明确,可能是:title, title

pyspark.sql.utils.AnalysisException: Reference 'title' is ambiguous, could be: title, title

我用的是glue 3.0版,python 3版,spark 3.1版。 我正在从 xml 中提取数据,创建数据框并将数据以 csv 格式写入 s3 路径。 在编写数据框之前,我使用 show(1) 打印了数据框的模式和 1 条记录。到目前为止一切都很好。 但是在将它写入 s3 位置的 csv 文件时发现错误重复列,因为我的数据框有 2 列,即“标题”和“标题”。 尝试添加一个新列 title2,其中包含 title 的内容,并考虑稍后使用以下命令删除 title

from pyspark.sql import functions as f df=df.withcoulumn('title2',f.expr("title")) but was getting error Reference 'title' is ambiguous, could be: title, title Tried df=df.withcoulumn('title2',f.col("title")) got same error. any help or approach to resolve this please..

默认情况下 spark 不区分大小写,我们可以通过将 spark.sql.caseSensitive 设置为 True 来使 spark 区分大小写。

from pyspark.sql import functions as f

df = spark.createDataFrame([("CaptializedTitleColumn", "title_column", ), ], ("Title", "title", ))

spark.conf.set('spark.sql.caseSensitive', True)

df.withColumn('title2',f.expr("title")) .show()

输出

+--------------------+------------+------------+
|               Title|       title|      title2|
+--------------------+------------+------------+
|CaptializedTitleC...|title_column|title_column|
+--------------------+------------+------------+