сбой соединения pyspark при изменении версии среды выполнения (Azure) databricks

#azure #pyspark #azure-databricks

#azure #pyspark #azure-databricks

Вопрос:

У меня есть записная книжка databricks, и в одной из ячеек много соединений.

псевдокод:

 df_final = df_final.join(dfTest1, on ['ID], how = 'left').drop(dfTest1.ID) 
                   .join(dfTest2, on ['ID], how = 'left').drop(dfTest2.ID) 
                   .join(dfTest3, on ['ID], how = 'left').drop(dfTest3.ID) 
 

Та же команда успешно выполняется с 6.6ML (включает Spark 2.4.5, scala 2.11), но завершается сбоем с версией времени выполнения 7.3 LTS ML (включает Apache Spark 3.0.1, scala 2.12)

Кто-нибудь сталкивался с этой проблемой? Как преодолеть эту проблему? Спасибо.

Комментарии:

1. Что вы подразумеваете под сбоем? Какую ошибку вы получили?

2. Сбой в строке 3 с сообщением «ID» не может быть разрешен

3. не могли бы вы опубликовать минимальный код, который воспроизводит эту ошибку, из того, что вы показали здесь, я не понимаю, почему это происходит

4. Спасибо @mck. Когда я удалил .drop(dfTest *. ID) из всех 3 строк ошибка исчезла. Похоже, это проблема с версией времени выполнения. В более ранней версии ошибка не отображалась. Также нам не нужно удалять столбец, в котором происходит соединение между двумя фреймами данных pyspark. Это была ошибка.

5. Это может быть проблема с вашими данными, похоже ID , что ее нет в 3-м df.