我正在尝试使用 jsonserde 对 json 文件执行配置单元命令,但我总是得到空值,而不是实际数据。我使用了“code.google.com/p/hive-json-serde/downloads/list”链接中提供的 serde。我尝试了多种方法,但所有尝试都没有成功。请有人可以帮助我了解要遵循的确切步骤和要使用的 serde,以便在 apache hive 最新版本(0.14)中处理 json 文件
BR,圣
我正在尝试使用 jsonserde 对 json 文件执行配置单元命令,但我总是得到空值,而不是实际数据。我使用了“code.google.com/p/hive-json-serde/downloads/list”链接中提供的 serde。我尝试了多种方法,但所有尝试都没有成功。请有人可以帮助我了解要遵循的确切步骤和要使用的 serde,以便在 apache hive 最新版本(0.14)中处理 json 文件
BR,圣
以下是在 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}
确保将 JSON Serde Jar 文件添加到 HIVE 类路径中。对于这个例子,我们使用了 openx json serde。可以从这里下载
添加jar的命令
ADD JAR /path-to/json-serde-1.3.6-jar-with-dependencies.jar;
现在我们可以从 json_table 查询条目
select * from json_table;