アプローチONE
一つの列を持つ単純なテーブルを作成します。
CREATE TABLE jsonTbl(line String)
ロードJSONデータテーブルにget_json_objectを用いAVROテーブルに
LOAD DATA INPATH '/user/demo/pg54505.txt' INTO TABLE jsonTbl;
CREATE TABLE as_avro(ID String, ename String, esal Int) STORED AS AVRO;
ハイブ
にAVROテーブルを作成する挿入データ()
INSERT OVERWRITE TABLE as_avro SELECT get_json_object(fieldname, '$.emp.ID'), get_json_object(fieldname, '$.emp.ename'), get_json_object(fieldname, '$.ename.esal') FROM jsonTbl
OR アプローチ2
JsonSerDeとJsonファイルが配置されている場所で外部テーブルを作成します。 AVROテーブルにデータを挿入し
CREATE TABLE as_avro(ID String, ename String, esal Int) STORED AS AVRO;
ハイブ
でAVROテーブルを作成します
CREATE EXTERNAL TABLE jsonTbl(id string, ename string, esal int) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION '/user/demo/';
。
INSERT OVERWRITE TABLE as_avro SELECT ID, ename, esal) FROM jsonTbl
私はScalaまたはJavaでコードを使用してjsonをavroに変換するアプローチを求めていました –