2017-03-20 9 views
-1

私はブタに '5060-5070'のような列を持っており、以下のようにタプルを返すudfを書いています。ブタの単一タプルから複数のタプルを作成するにはどうすればよいですか?

col1とcol2はすべてのタプルで同じになります。

COL1、col2,5060、...

COL1、col2,5061、..

COL1、col2,5062、..

または任意の代替が存在する場合(代わりにudfを使用して)単一のタプルから複数のタプルを作成します。

+0

UDFはあなたの唯一のオプションです –

+0

それで、私はそれを書く手助けができますか? – skaur

+0

https://www.tutorialspoint.com/apache_pig/apache_pig_user_defined_functions.htm。 このリンクをチェックして、UDFの作成を開始します。 –

答えて

0

Databagを返すUDFを作成する必要があります。データバッグには任意の数のタプルを含めることができます。次に、flattenを使用してこのデータバッグを展開します。 BagFactoryを使用してDataBagを作成し、TupleFactoryを使用してタプルを作成し、タプルを追加します。

+0

大丈夫ですが、私はいくつかの処理をカラムで行いたいと思います。 udfの中でどのように列を使うことができますか? – skaur

+0

すべてのUDFは、処理できるタプルを受け取ります。例えば、foreach Aのようなsmthを行う場合、あなたのNiceUDF(col1、col2)を生成します。 0インデックス(これはtuple.get(0);を使用して取得できることを意味します)でcol1の値を補完するタプルを受け取り、インデックス1でcol2の値を受け取ります – Alexey

+0

初めてUDFを書く場合は、単純なようにhttps://github.com/apache/pig/blob/trunk/src/org/apache/pig/builtin/MilliSecondsBetween.javaのような単純な – Alexey

関連する問題