s3 から parquet(compressed: snappy) ファイルを読み取る Qubole(Hive) に外部テーブルを作成しましたが、実行するSELECT * table_name
と、パーティション化された列を除くすべての列で null 値が取得されます。
SERDEPROPERTIES で別の serialization.format 値を使用してみましたが、まだ同じ問題に直面しています。そして、'serialization.format' = '1'
私が得ているプロパティを削除するとERROR: Failed with exception java.io.IOException:Can not read value at 0 in block -1 in file s3://path_to_parquet/
.
寄木細工のファイルを確認したところ、寄木細工のツールを使用してデータを読み取ることができました。
**file_01.snappy.parquet:**
{"col_2":1234,"col_3":ABC}
{"col_2":124,"col_3":FHK}
{"col_2":12515,"col_3":UPO}
**External table stmt:**
CREATE EXTERNAL TABLE parquet_test
(
col2 int,
col3 string
)
PARTITIONED BY (col1 date)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
)
STORED AS PARQUET
LOCATION 's3://path_to_parquet'
TBLPROPERTIES ('parquet.compress'='SNAPPY');
Result:
col_1 col_2 col_3
5/3/19 NULL NULL
5/4/19 NULL NULL
5/5/19 NULL NULL
5/6/19 NULL NULL
Expected Result:
col_1 col_2 col_3
5/3/19 1234 ABC
5/4/19 124 FHK
5/5/19 12515 UPO
5/6/19 1234 ABC