私は会議への人の出席のため、以下のJSONオブジェクトがあります。私はS3アマゾンアテナ - ネストされたJSONを発行
に格納されたデータを持っているところを指してテーブルを作成するために、次のコードを実行した{"conferences_attended": [
{"conference_name": "dreamforce",
"date": "2017",
"city": "san francisco",
"state": "ca"},
{"conference_name": "RampUp",
"date": "2016",
"city": "san francisco",
"state": "ca"},
],
"last_name" : "doe"}
を
CREATE EXTERNAL TABLE IF NOT EXISTS my_db.attendees (
`last_name` string,
`conferences_attended` array< struct<
conference_name:string,
date:string,
city:string,
state:string,
>>,
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
) LOCATION 's3://**'
TBLPROPERTIES ('has_encrypted_data'='false');
今、私は私の質問に2つの部分を持っています。
1)ネストされたjsonオブジェクトにあるデータにアクセスするためにクエリを実行するにはどうすればよいですか?以下の2つのクエリは機能しませんし、類似していないクエリもあります。
2)ネストされたjsonの特定の部分だけに一致する結果を取得するにはどうしたらクエリできますか?
SELECT *
FROM attendees
WHERE conferences_attended.conference_name like '%force%';
私は...私はデータ型または非巣データか何かsimilrを変更する必要が助けとアクションのこれらのタイプをサポートする情報へのリンクをありがとうと信じて私をリードエラーを取得しています。注:私は以下のリンクを読んで、役に立つと思っていますが、まだ私のニーズを解決していません。 http://docs.aws.amazon.com/athena/latest/ug/rows-and-structs.htmlとhttp://thornydev.blogspot.com/2013/07/querying-json-records-via-hive.htmlや他の多くの...
は最後に、「org.apache.hive.hcatalog.data.JsonSerDe」と「org.openx.data.jsonserde.JsonSerDe」の間の差異について何かアドバイスやリソースが歓迎されています。