如何基于内部带有模式的AVRO文件来构建Avro Hive表



我们有一个以avro格式的数据集,每个avro文件中都有架构。

我想在这些文件的顶部构建蜂巢表,

我从社区中提出的一个旧问题中得到了以下建议:

创建外部表sampe_table存储为avro位置'hdfs'hdfs:///user/hive/;

但是,每当我尝试它时,我总是会出现错误:

 java.lang.Exception: java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException Encountered AvroSerdeException determining schema. Returning signal schema to indicate problem: Neither avro.schema.literal nor avro.schema.url specified, can't determine table schema)

有什么建议吗?还是您知道可以将模式从文件中拆分的任何在线工具?

首先生成一个avsc文件,然后使用该文件创建表

create external table myavro 
stored as avro 
location '/user/cloudera/myavro'
tblproperties('avro.schema.url' = 'file:///home/cloudera/myavsc.avsc')

要从现有的AVRO数据文件中生成avsc,请使用avro-tools,例如此

avro-tools getschema your_avro_file

最新更新