2016-08-23 162 views
0

我們如何過濾JSON數據,以便只將選定的字段放入文件中,然後使用此文件進行進一步分析。過濾JSON數據以便使用Hive進行分析

+0

請提供您所做的以及相同的輸入/輸出。 – Ambrish

+0

我想分析Twitter數據和我得到「apache spark」推文的關鍵。我已經得到了包含twitter推文的文件。 JSON數據有許多字段,例如filter_level,轉推,截斷,lang和許多這樣的字段。我如何過濾它,以便我只能在文件中存儲文本,名稱,用戶標識等幾個字段,以便我可以使用該文件進行進一步分析。 – Harshi

回答

2

必須使用側視與json_tuple

json_tuple()UDTF在蜂巢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; 

完成加載數據!