私は、このような複数のファイルを持っていると私はそれぞれ{}テーブル内の1つの列を形成するようにしたいハイブテーブルにハイブテーブル内のデータの配列を別々の行にインポートするにはどうすればよいですか?
[
{
"identifier" : "id#1",
"dataA" : "dataA#1"
},
{
"identifier" : "id#2",
"dataA" : "dataA#2"
}
]
を次の形式でデータをインポートしようとしています。これは私が試したものです:
CREATE EXTERNAL TABLE final_table(
identifier STRING,
dataA STRING
) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION "s3://bucket/path_in_bucket/"
これは{}ごとに1つの行を作成していません。私も試したことがあります
CREATE EXTERNAL TABLE final_table(
rows ARRAY< STRUCT<
identifier: STRING,
dataA: STRING
>>
) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION "s3://bucket/path_in_bucket/"
しかし、これはどちらでもありません。各レコードがハイブクエリの配列内の項目である配列としての入力を指定する方法はありますか?何をすべきかに関する提案はありますか?
私が我慢するJSONは読みやすくするためにフォーマットされます。あなたが[]を取り除くことを意味するならば、私は11672のファイルを持っています、各ファイルが配列であることを指定するいくつかのオプションがありますか – shrewquest
より良い理解のためにサンプル出力を提供できますか? –
期待される出力はハイブテーブルです配列内の各項目をテーブル内の1つの行として表示します – shrewquest