使用serde在Hive-0.14中分析简单的JSON文件

时间:2016-01-14 17:54:29

标签: hadoop hive hiveql hcatalog apache-hive

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

BR, 圣

1 个答案:

答案 0 :(得分: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. 确保在HIVE类路径中添加JSON Serde Jar文件。对于这个例子,我们使用了openx json serde。它可以从here

    下载

    添加jar的命令

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

    select * from json_table;