我们如何过滤JSON数据,以便我只能将选定的字段放入文件中,然后使用此文件进行进一步分析。
答案 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;
完成!!!