2016-08-23 14 views
0

JSONデータをフィルタリングして、選択したフィールドのみをファイルに取得し、後でこのファイルを使用してさらに解析する方法を教えてください。ハイブを使用した解析のためのJSONデータのフィルタリング

+0

お手数ですが、同じ入出力をご提供ください。 – Ambrish

+0

私はTwitterのデータを分析しようとしています。私は「apache spark」のつぶやきを取得しました。私はtwitterからのつぶやきを含むファイルを持っています。 JSONデータにはfilter_level、retweeted、truncated、langなど多くのフィールドがあります。テキスト、名前、ユーザーIDなどのいくつかのフィールドのみをファイルに格納するようにフィルタをかけると、後で解析するためにそのファイルを使用できるようになります。 – Harshi

答えて

2

あなたは

json_tuple()UDTFはハイブ0.7で導入されjson_tupleと側面図を使用する必要があります。これは、名(キー)と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; 

を使用してデータをロードします!

関連する問題