pyspark.sql.utils.AnalysisException:参考“标题”不明确,可能是:标题,标题

Posted

技术标签:

【中文标题】pyspark.sql.utils.AnalysisException:参考“标题”不明确,可能是:标题,标题【英文标题】:pyspark.sql.utils.AnalysisException: Reference 'title' is ambiguous, could be: title, title 【发布时间】:2021-12-05 09:13:23 【问题描述】:

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

从 pyspark.sql 导入函数为 f df=df.withcoulumn('title2',f.expr("title")) 但出现错误 引用“标题”不明确,可能是:标题、标题 试过 df=df.withcoulumn('title2',f.col("title")) 得到同样的错误。 请任何帮助或解决此问题的方法..

【问题讨论】:

【参考方案1】:

默认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|
+--------------------+------------+------------+

【讨论】:

感谢您的回复。在 AWS 中,我使用以下设置设置配置:Open Glue> 作业 > 编辑作业> 脚本库和作业参数(可选)> 底部附近的作业参数设置以下内容:键:--conf 值:spark.sql。 caseSensitive=True

以上是关于pyspark.sql.utils.AnalysisException:参考“标题”不明确,可能是:标题,标题的主要内容,如果未能解决你的问题,请参考以下文章