2017-08-08 16 views
0

私はAmazonのDynamoDBに、関連データ(ユーザー、場所など)のつぶやきを含んでいます。パイプライン経由でこれをエクスポートし、jsonファイルを取得しました。 ツイストの多くはテキストフィールドにカンマが含まれているため、csvに書き出すことは悪い考えです。私のようにHiveには新しいように、少なくとも私はjsonファイルをロードするために、私はある種のSerDeが必要であることを知っています。ハイブ:json SerDeファイルが外部テーブルに "NULL"を返します

これは私がテーブルを作成しています方法です:私はすべてのエラーを得ることはありません

create external table tablename (
id string, 
created_at string, 
followers_count string, 
geo string, 
location string, 
polarity string, 
screen_name string, 
sentiment string, 
subjectivity string, 
tweet string, 
username string) 
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' 
SAVE AS TEXTFILE ; 

が、その後私は:

load data inpath '/user/exam' 
overwrite into table tablename; 

(JSONファイルが格納されている場所です

hive> select * from wcd.tablename limit 5; 
OK 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
{ NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
:私は)

"select * from tablename limit 5;は" すべてがNULLをアップしています

誰もが問題のファイルを見てみたい場合は、それはで利用可能です:

http://www.vaughn-s.net/hadoop

どのような援助をいただければ幸いです!

+1

のために、文字列としてで構造の各列を配置しようとするとその理由は、あなたがいくつかの例を置くことができるですあなたのデータ? – hlagos

+0

はい、私のポストの一番下にファイル全体へのリンクがあります。あなたが好きなら、私はsnippitsを投稿することができます。 –

答えて

2

あなたのJSON doesn'tあなたのテーブル定義に従う

{"id":{"s":"894643473017561088"},"sentiment":{"s":"neutral"},"subjectivity":{"s":"0.0"},"username":{"s":"Jessi"},"geo":{"s":"None"},"location":{"s":"Valley of the sun☀ï¸"},"polarity":{"s":"0.0"},"tweet":{"s":"b\"RT @bannerite: Donald Trump's lies have consequences. We're seeing them now | Charlotte Observer #DemForce https""},"created_at":{"s":"Mon Aug 07 19:36:40 
+0000 2017"},"screen_name":{"s":"JessiAtkins06"},"followers_count":{"s":"19"}} 

を例

id struct<s:string> 
+0

私はそれに気付かなかった - チップのおかげで! –

関連する問題