尝试使用Spark SQL查询时发现重复的列

时间:2019-04-10 12:40:00

标签: python apache-spark dataframe pyspark apache-spark-sql

我想像这样对数据框进行过滤:

filtered_df2 = filtered_df.select("li", "result.li", "fw").orderBy("fw")

但是,嵌套列result.lili的名称相同,这带来了问题。我收到以下错误:

AnalysisException: 'Found duplicate column(s) when inserting into hdfs://...: `li`;'

如何成功过滤两个字段?

2 个答案:

答案 0 :(得分:0)

我现在有解决方案。我需要使用的是:

在文件头添加from pyspark.sql.functions import *

只需像这样使用col()的别名函数:

filtered_df2 = filtered_df.select(col("li"),col("result.li").alias("result_li"), col("fw")).orderBy("fw")

答案 1 :(得分:0)

您可以使用selectExprAS来赋予列别名。

filtered_df2 = filtered_df\
    .selectExpr("li AS li", "result.li AS result_li", "fw AS  fw")\
    .orderBy("fw")