0
私はこれを解決するためのスタックを探しています。近くには到着していないようです。JSONのいくつかのフィールドをPigスクリプト内で連結します。
私はカスタム圧縮UDFを持っており、JsonStorage()
を使用してPigからJSON
のキー値フォーマットを出力したいと考えています。ひねりは、を使用して出力する前に、いくつかのフィールドを連結してJSON
にし、私のUDFを使用して圧縮したいと思っています。
最終的な出力は、理想的には、のようなものになります。
圧縮されたバイトの値が{ 'id': '00001', 'v1': 'value1', ... , 'vN': 'valueN' }
{ 'id': '00002', 'v1': 'othervalue1', ... , 'vN': 'othervalueN' }
に解凍します
{ '00001' : '<COMPRESSED BYTES>' }
{ '00002' : '<OTHER COMPRESSED BYTES>' }
を...あなたのアイデアを得ます。
JSON
をPigスクリプトの中にエンコードするビルトインまたはPiggyBankの方法はありますか? encode_json
register $MY_COMPRESS_UDF_JAR;
define compress my.compress.udf(args);
A = load 'example.csv' using PigStorage(',') as $fields;
B = foreach A generate encode_json($subset_of_fields) as jsonstr;
J = foreach B generate id, compress(jsonstr);
store J into 'example.json' using JsonStorage();
は、単一JSON
文字列に複数のフィールドを回すのいくつかの方法です。
ありがとうございます。
あなたは(Pythonのメソッドのstring.encodeを試しました) –