1

私は2つの関係A、Bを持っています

DESCIBE A
A:{ip_num:long,data:int}

DESCIBE B
B:{ip_start_num:long,ip_end_num:long}

私は製品を持っていたい:

C:{group:(ip_start_num:long, ip_end_num:long), B:{(ip_num:long, data:int)}}

where ip_num >ip_start_num && ip_num < ip_end_num

PigLatinと関係がある可能性はありますか?

4

2 に答える 2

0

ただしFILTER、ネストされた内部で操作を行う必要があります。FOREACHバグがあるように見えるので、そのような文は解析すらしません。https://issues.apache.org/jira/browse/PIG-1798。この投稿も同じ問題に言及しています。PIGのネストされたFOREACHでフィルターを使用する

昨日同じ問題に遭遇しましたが、2つの解決策がありました。1つ目は、IP範囲によるフィルタリングを行うUDFを作成することです。2つ目は、2つの関係を単純に結合して、この他の関係を作成する方法を見つけることです。

D:{ip_num:long,data:int,ip_start_num:long,ip_end_num:long}

そこで、ネストされたforeachなしでフィルタリングできます。私は2番目の選択肢を選びましたが、それが常に参加する方法であるとは限りません。

于 2012-06-28T13:32:47.020 に答える
0

Pig にはシータ結合はありません。クロス結合に続いてフィルターを実行できます。結果として生じるデータの爆発に注意してください。

于 2015-04-15T15:53:52.307 に答える