Самостоятельное присоединение Pyspark с ошибкой «Отсутствуют разрешенные атрибуты» - PullRequest
0 голосов
/ 02 июля 2019

Во время самостоятельного объединения фрейма данных pyspark я получил сообщение об ошибке:

Py4JJavaError: An error occurred while calling o1595.join.
: org.apache.spark.sql.AnalysisException: Resolved attribute(s) un_val#5997 missing from day#290,item_listed#281,filename#286 in operator !Project [...]. Attribute(s) with the same name appear in the operation: un_val. Please check if the right attribute(s) are used.;;

Это простое самофрагментарство данных, подобное приведенному ниже, которое работает нормально, но после нескольких операций надв кадре данных, например при добавлении столбцов или соединении с другими кадрами данных, возникает упомянутая выше ошибка.

df.join(df,on='item_listed')

Использование псевдонимов данных, таких как ниже, также не будет работать, и выдается то же сообщение об ошибке:

df.alias('A').join(df.alias('B'), col('A.my_id') == col('B.my_id'))

1 Ответ

1 голос
/ 02 июля 2019

Я нашел обходной путь Java здесь SPARK-14948 и для pyspark это так:

#Add a "_r" suffix to column names array
newcols = [c + '_r' for c in df.columns]

#clone the dataframe with columns renamed
df2 = df.toDF(*newcols)

#self-join
df.join(df2,df.my_column == df2.my_column_r)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...