2017-04-26 25 views
-1

ハイブでハイブに1つのJSON配列ファイルを使用しようとしています。ハイブに読み込まれたときに最初の行がNULLに変換され、1行目のデータが失われます。私は何を間違っているのかアドバイスしてください。
データ:Jsonファイルの読み込みハイブの読み飛ばし行1

[{"id":1,"first_name":"Alexandrina","email":"[email protected]","date":"9/11/2016","country":"Nigeria"}, 
{"id":2,"first_name":"Craggie","email":"[email protected]","date":"12/7/2016","country":"China"}, 
{"id":3,"first_name":"Allie","email":"[email protected]","date":"10/31/2016","country":"Russia"}, 
{"id":30,"first_name":"Vinson","email":"[email protected]","date":"5/16/2016","country":"Saint Kitts and Nevis"}] 

ハイブ機能:

CREATE TABLE format.json_table (json string); 
LOAD DATA INPATH '/user/cloudera/JSON/MOCK_DATA.json' INTO TABLE json_table; 


私は、クエリ:

select get_json_object(json_table.json, '$.id') as id, 
get_json_object(json_table.json, '$.first_name') as name, 
get_json_object(json_table.json, '$.email') as email, 
get_json_object(json_table.json, '$.date') as date, 
get_json_object(json_table.json, '$.country') as country from json_table; 

それは

を返します。
OK 
id name email date country 
NULL NULL NULL NULL NULL 
2 Craggie [email protected] 12/7/2016 China 
3 Allie [email protected] 10/31/2016 Russia 
4 Poul [email protected] 9/11/2016 Nigeria 
5 Vinson [email protected] 5/16/2016 Saint Kitts and Nevis 
+0

これらは、このクエリの結果ではありません。 –

+0

あなたはこのクエリからNULL NULL NULL NULL NULLとして1行しか得られません –

+0

それは私の出力です:) –

答えて

0

JSON SerDeは1行のドキュメントで動作します。
データがあれば、それ自体が有効なJSONドキュメントであるすべての行が適切に読み込まれ、それ以外の行はJSONパーサーに失敗し、NULL値が返されます。

関連する問題