У меня возникает одна проблема типа " sql.AnalysisException: не удается разрешить имя_столбца" при выполнении одной операции соединения с использованием API-интерфейса DataFrame. Хотя имя столбца существует, и такая же операция соединения работает нормально, когда вы пытаетесь использовать формат HiveContext в формате SQL. В следующей базе кода
DataFrame df= df1
.join(df2, df1.col("MERCHANT").equalTo(df2.col("MERCHANT")))
.select(df2.col("MERCH_ID"), df1.col("MERCHANT")));
Я тоже пытался использовать функцию "alias", но получил ту же проблему "Невозможно разрешить имя столбца". и бросая следующее исключение.
разрешенные атрибуты MERCH_ID # 738 отсутствуют в MERCHANT # 737, MERCHANT # 928, MERCH_ID # 929, MER_LOС# 930 в операторе! Project [MERCH_ID # 738, MERCHANT # 737];
at org.apache.spark.sql.catalyst.analysis.CheckAnalysis $class.failAnalysis(CheckAnalysis.scala: 38)
Искра Версия: 1.6
Проблема столкнулась как с Scala, так и с Java Spark.
В Scala проблема решена с использованием alias ', но в Java я все еще получаю ошибку.