假设一个人有一个列表,其中Intervals
一个列表Points
来自两个不同的查询计划。
假设Intervals
列表的签名是:
Intervals : { (start:int, stop:int) }
因此,它是一个情侣列表。
ConvereslyPoints
是一个单例列表:
Points: { (coordinate:int) }
我想要做的是从集合中检索Points
包含在集合的至少一个间隔中的所有点Intervals
。
我所做的,是为了实现这个简单的计划:
cp = CROSS Points, Intervals;
cp_filtered = FILTER cp BY start < coordinate and coordinate < stop;
filtered_point = FOREACH cp_filtered GENERATE coordinate;
当然,如果列表的基数很高,叉积就不是一个好的选择。
我想知道在 PigLatin 中通常如何解决此类问题。你可以帮帮我吗?