0

我正在尝试使用 jsonserde 对 json 文件执行配置单元命令,但我总是得到空值,而不是实际数据。我使用了“code.google.com/p/hive-json-serde/downloads/list”链接中提供的 serde。我尝试了多种方法,但所有尝试都没有成功。请有人可以帮助我了解要遵循的确切步骤和要使用的 serde,以便在 apache hive 最新版本(0.14)中处理 json 文件

BR,圣

4

1 回答 1

0

以下是在 Hive 中使用 JSON 的简单步骤

  1. 创建一个蜂巢表

    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';
    
  2. 表的示例数据。将以下内容复制到 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}
    
  3. 确保将 JSON Serde Jar 文件添加到 HIVE 类路径中。对于这个例子,我们使用了 openx json serde。可以从这里下载

    添加jar的命令

     ADD JAR /path-to/json-serde-1.3.6-jar-with-dependencies.jar;
    
  4. 现在我们可以从 json_table 查询条目

    select * from json_table;
    
于 2016-01-14T20:52:36.560 回答