使用Hive过滤JSON数据以进行分析

时间:2016-08-23 11:44:10

标签: hive

我们如何过滤JSON数据,以便我只能将选定的字段放入文件中,然后使用此文件进行进一步分析。

1 个答案:

答案 0 :(得分:3)

您必须使用横向视图和json_tuple

json_tuple()UDTF在Hive 0.7中引入。它需要一组名称(键)和一个JSON字符串,并使用一个函数返回一个值元组

CREATE  EXTERNAL  TABLE twitterdata
(
json STRING 
)
LOCATION  'hdfs path';

如果是本地文件系统上的文件

  LOAD DATA LOCAL INPATH 'local path to file' [OVERWRITE] INTO TABLE twitterdata;

如果文件在hdfs上

LOAD DATA INPATH 'hdfs path to file' [OVERWRITE] INTO TABLE twitterdata

创建目标表,您可以从中进行进一步分析

 CREATE  EXTERNAL  TABLE targettable
 (
    text string,
    name string,
    userid string
 )
LOCATION  'hdfs path';

现在使用 json_tuple

加载数据
INSERT OVERWRITE TABLE targettable
    select a.text
        ,a.name
        ,a.userid
    from twitterdata t.json
    LATERAL VIEW json_tuple (t.json,'text','name','userid')a
    as text,name.userid;

完成!!!