我们有一个Avro格式的数据集,每个Avro文件中都有架构。
我想在这些文件之上构建Hive表,
我从社区中提出的一个旧问题中得到了以下建议:
创建外部表sampe_table存储为AVRO位置' 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)
有什么建议吗?或者您是否知道任何可以从文件中拆分Schema的在线工具?
答案 0 :(得分:1)
首先生成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