我想像这样对数据框进行过滤:
filtered_df2 = filtered_df.select("li", "result.li", "fw").orderBy("fw")
但是,嵌套列result.li
与li
的名称相同,这带来了问题。我收到以下错误:
AnalysisException: 'Found duplicate column(s) when inserting into hdfs://...: `li`;'
如何成功过滤两个字段?
答案 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)
您可以使用selectExpr
和AS
来赋予列别名。
filtered_df2 = filtered_df\
.selectExpr("li AS li", "result.li AS result_li", "fw AS fw")\
.orderBy("fw")