Sparkトラブルシューティング「org.apache.spark.sql.AnalysisException: Reference 'Hoge' is ambiguous」
下記のようなエラーが出力され少しハマったので原因と対処ほうについて。
org.apache.spark.sql.AnalysisException: Reference 'Hoge' is ambiguous, could be: Hoge#5, Hoge#96.
原因
読み込みデータに大文字と小文字の違いだけで同じスペルのカラムが存在していたことが原因でした。
hogeとHogeみたいな。
Sparkの内部のスキーマはデフォルトでは大文字と小文字を区別しないようです。jsonなどでは大文字と小文字で別々のカラム(キー)で値を持てるのでこういったエラーが出ることがあります。
対処
データを修正
大文字と小文字で同じスペルになるカラムがなくなるようにデータを修正する。
オプションを使ってSparkが大文字と小文字を区別するようにする
spark.sql.caseSensitiv
という設定項目があるので、これをtrueにすると大文字と小文字を区別するようになります。
コード中で設定するには下記のようにします。
sqlContext.sql("set spark.sql.caseSensitive=false")
Author And Source
この問題について(Sparkトラブルシューティング「org.apache.spark.sql.AnalysisException: Reference 'Hoge' is ambiguous」), 我々は、より多くの情報をここで見つけました https://qiita.com/devneko/items/e92d39a83a4fcfafd925著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .