gpt4 book ai didi

hive - 在 Parquet 数据上使用 Avro 架构动态创建 Hive 外部表

转载 作者:行者123 更新时间:2023-12-03 16:01:50 26 4
gpt4 key购买 nike

我正在尝试动态地(没有在 Hive DDL 中列出列名和类型)在 Parquet 数据文件上创建一个 Hive 外部表。我有底层 Parquet 文件的 Avro 架构。

我的尝试是使用以下 DDL:

CREATE EXTERNAL TABLE parquet_test
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS PARQUET
LOCATION 'hdfs://myParquetFilesPath'
TBLPROPERTIES ('avro.schema.url'='http://myHost/myAvroSchema.avsc');

我的 Hive 表已使用正确的架构成功创建,但是当我尝试读取数据时:
SELECT * FROM parquet_test;

我收到以下错误:
java.io.IOException: org.apache.hadoop.hive.serde2.avro.AvroSerdeException: Expecting a AvroGenericRecordWritable

有没有一种方法可以成功创建和读取 Parquet 文件,而无需在 DDL 中提及列名和类型列表?

最佳答案

以下查询有效:

CREATE TABLE avro_test ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' STORED AS AVRO TBLPROPERTIES ('avro.schema.url'='myHost/myAvroSchema.avsc'); 

CREATE EXTERNAL TABLE parquet_test LIKE avro_test STORED AS PARQUET LOCATION 'hdfs://myParquetFilesPath';

关于hive - 在 Parquet 数据上使用 Avro 架构动态创建 Hive 外部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34181844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com