我正在尝试使用jsonserde在json文件上执行hive命令,但我总是得到空值,但不是实际数据。我使用了“code.google.com/p/hive-json-serde/downloads/list”链接中提供的serde。我尝试了多种方法,但所有尝试都没有成功。请一些人帮助我完成要遵循的确切步骤,并使用serde来处理apache hive最新版本中的json文件(0.14)
BR, 圣
答案 0 :(得分:0)
以下是在Hive中使用JSON的简单步骤
创建一个配置表
CREATE EXTERNAL TABLE IF NOT EXISTS json_table (
field1 string COMMENT 'This is a field1',
field2 int COMMENT 'This is a field2',
field3 string COMMENT 'This is a field3',
field4 double COMMENT 'This is a field4'
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
Location '/path/to/json_table';
您的表格的示例数据。将以下内容复制到json文件中并存储到json_table指向的文件位置。
{"field1":"data1","field2":100,"field3":"more data1","field4":123.001}
{"field1":"data2","field2":200,"field3":"more data2","field4":123.002}
{"field1":"data3","field2":300,"field3":"more data3","field4":123.003}
{"field1":"data4","field2":400,"field3":"more data4","field4":123.004}
确保在HIVE类路径中添加JSON Serde Jar文件。对于这个例子,我们使用了openx json serde。它可以从here
下载添加jar的命令
ADD JAR /path-to/json-serde-1.3.6-jar-with-dependencies.jar;
现在我们可以从json_table查询条目
select * from json_table;