「3」のような数字のフィールドを含むcsvファイルを読みました。PigLatin でこのフィールドを「3」から 3 に変換できますか? SUM() - 関数を使用するために必要です。
ご協力いただきありがとうございます!
「3」のような数字のフィールドを含むcsvファイルを読みました。PigLatin でこのフィールドを「3」から 3 に変換できますか? SUM() - 関数を使用するために必要です。
ご協力いただきありがとうございます!
REPLACEで単に削除するのはどう"
ですか?
例えば:
data =
LOAD 'data.txt' AS (num:CHARARRAY);
numbers =
FOREACH data
GENERATE
(INT) REPLACE(num, '\\"', '');
GROUP
その後、することができますSUM
。
利点の 1 つは、返された文字列を直接数値にキャストできることです (バッグを処理する必要はありません)。REGEX_EXTRACTを使用して同じことを行うこともできます。
このTOKENIZE
関数は、単語区切りと見なされるさまざまな文字で文字列を分割します。そのうちの 1 つは引用符です。したがって、「3」をトークン化して真ん中の項目を取ると、ちょうど 3 になるはずです。
引用符を囲むUDFを作成するか、JacobMのアプローチを使用できます。
ただし、その後、:または。にキャストする必要chararray '3'
がint
あり(int)$1
ます(int)myvalue
。このように使用できますsum
。
http://pig.apache.org/docs/r0.5.0/piglatin_reference.html#Cast+Operators