spark save parquet in impala dir not support add columns

  • 2020 年 3 月 30 日
  • 筆記

1.問題: 項目中使用 spark save parquet 到 impala( impala 為分區表 ) 的目錄下面,然後在 impala 中添加欄位,報錯. 例如:我將 spark 生成的 parquet 數據放到 impala 表 event_s_p186 相應的目錄下,然後添加欄位 aaa,欄位順序如下:

報錯如下: 其中 day_id 為分區欄位

2. 原因 impala( v3.2.0-cdh6.3.1 ) 默認的情況下是按照欄位順序讀取數據的,添加了一個欄位 aaa ,由於 parquet 中的數據並沒有 aaa ,也沒有 aaa 的佔位符,它會默認把 day_id 當做 aaa.

3.解決辦法: set PARQUET_FALLBACK_SCHEMA_RESOLUTION=name;

4.參考: Hive vs Impala Schema Loading Case: Reading Parquet Files PARQUET_FALLBACK_SCHEMA_RESOLUTION Query Option (CDH 5.8 or higher only)