Hive データ ウェアハウスを維持しており、sparkSQL を使用して Hive データベースに対してクエリを実行し、レポートを生成しています。AWS EMR 環境で Spark 1.6 を使用しており、正常に動作しています。環境を Spark 2.0 にアップグレードしたかったのですが、日付フィールドで非常に奇妙なキャスト エラーが発生しました。DATE 型の列を含む既存のテーブルはjava.lang.ClassCastException: java.lang.Integer cannot be cast to java.sql.Date
、spark 2.0 でクエリを実行するとエラーをスローします。
以下は、Hive データベースにあるテーブルの簡単な例です。
CREATE TABLE IF NOT EXISTS test.test_table
(
column_1 STRING,
column_2 STRING,
)
PARTITIONED BY (column_3 DATE)
STORED AS PARQUETFILE ;
クエリSELECT * FROM test.test_table limit 5
は、spark 2.0 では上記のエラーで失敗しますが、spark 1.6 では正常に動作します。
これらのテーブルには、構文を使用して spark 1.6 HiveContext が取り込まれINSERT INTO
ます。
誰もこの問題を見たことがありますか?spark 2.0 を parquet 形式の Date フィールドで動作させるために設定する必要がある構成値はありますか?