Обнаружен повторяющийся столбец при попытке запроса с помощью Spark SQL - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу сделать фильтр для фрейма данных примерно так:

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

Однако вложенный столбец result.li имеет то же имя, что и li, и это создаетпроблема.Я получаю следующую ошибку:

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

Как успешно отфильтровать оба поля?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Вы можете использовать selectExpr и AS, чтобы задать псевдоним столбца.

filtered_df2 = filtered_df\
    .selectExpr("li AS li", "result.li AS result_li", "fw AS  fw")\
    .orderBy("fw")
0 голосов
/ 10 апреля 2019

У меня есть решение сейчас.Мне нужно было использовать:

Добавить from pyspark.sql.functions import * в заголовок файла

Просто используйте функцию псевдонима col () следующим образом:

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

...