如何使用spark将元素增量分组在一起

zazmityj  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(230)

我想要一些关于如何解决从队列中获取的项目分组问题的建议。我会尽量简化这个问题,去掉所有不必要的细节。
我的元素以坐标和名称为特征,我希望首先按距离对它们进行分组,然后,对于属于同一组的元素,我希望计算名称并考虑具有类似(不仅相同)名称的元素属于同一组,否则我将创建一个新组。
让我们举个例子。
元素有x和y作为坐标和名称,所以我可以把元素写成e(x,y,name)。阈值距离等于1。
队列

End of the queue -> E3(1.5,1.5,same), E2(-1,-1,same), E1(2,2,some), E0(2,1,different) -> Beginning of the queue

理想情况下,程序如下:
我从队列中取第一个元素(e0),没有要进行的比较,我将它放在笛卡尔平面上,并将其分配给组g1。
我取第二个元素(e1),我计算与第一个元素(e0)的距离,它在阈值范围内,我看名字,它完全不同,我给它分配了组g2。
我取第三个元素(e2),与其他两个元素(e0,e1)的距离超出范围,我忽略了名称并指定了组g3。
我选择第四个元素(e3),因为它可能同时属于g1和g2,但是我通过观察名称的相似性将它分配给g2。
最终结果如下:

我在考虑用spark流来做这个。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题