我正在存储从复杂JSON对象导入到Avro格式的数据。
JSON对象由具有嵌套对象和对象数组的对象表示。 Avro Schema看起来像这样:
{
"type" : "record",
"name" : "userInfo",
"namespace" : "my.example",
"fields" : [{"name" : "username",
"type" : "string",
"default" : "NONE"},
{"name" : "age",
"type" : "int",
"default" : -1},
{"name" : "phone",
"type" : "string",
"default" : "NONE"},
{"name" : "housenum",
"type" : "string",
"default" : "NONE"},
{"name" : "address",
"type" : {
"type" : "record",
"name" : "mailing_address",
"fields" : [
{"name" : "street",
"type" : "string",
"default" : "NONE"},
{"name" : "city",
"type" : "string",
"default" : "NONE"},
{"name" : "state_prov",
"type" : "string",
"default" : "NONE"},
{"name" : "country",
"type" : "string",
"default" : "NONE"},
{"name" : "zip",
"type" : "string",
"default" : "NONE"}
]},
"default" : {}
}
]
}
我使用NiFi将JSON转换为Avro并将序列化文件存储在Hadoop中(目前我只使用纯Hadoop):
我的问题:
出于测试目的,我想查询存储HDFS(Avro格式)的数据。
所以在这一点上我有点困惑,因为围绕Hadoop的很多工具和技术.. 我怎么能以正确的方式做到这一点?什么工具和工作流程?
答案 0 :(得分:2)
您应该能够在编写Avro数据的HDFS位置顶部创建外部Hive表。
这篇文章有例子: