我正在存储从复杂的 JSON 对象导入到 Avro 格式的数据。
JSON 对象由具有嵌套对象和对象数组的对象表示。 Avro 架构如下所示:
{
"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.. 我怎样才能以正确的方式做到这一点?什么工具和工作流程?
最佳答案
您应该能够在写入 Avro 数据的 HDFS 位置之上创建一个外部 Hive 表。
这篇文章有例子:
关于java - Hadoop:查询/读取 Avro 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43964022/