我们有一个以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