hadoop - 使用Serde在Hive-0.14中进行简单的JSON文件分析

标签 hadoop hive hiveql hcatalog apache-hive

我试图使用jsonserde在json文件上执行hive命令,但是我总是得到null值,而不是实际数据。我已使用“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}
    
  • 确保在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;
    
  • 关于hadoop - 使用Serde在Hive-0.14中进行简单的JSON文件分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796457/

    相关文章:

    hadoop - CorruptStatistics-使用Parquet文件时的警告消息

    hadoop - 在配置单元中使用别名时出错

    Hive 分区 - 如何删除 null 或 hive_default_partition

    hadoop 协议(protocol)消息太大。可能是恶意的。使用 CodedInputStream.setSizeLimit() 增加大小限制

    Hadoop:是否可以避免某些文件的复制?

    hadoop - Windows 'File Not Found'上的hiveserver2并挂起

    performance - 使用拼花格式时如何控制映射器的数量

    sql - sql regexp字符串以“.0”结尾

    hadoop - HBase:扫描包含字符串的行键

    shell - 脚本未完成执行,但 cron 作业再次启动