我很不高兴。我想知道spark是否可以像树一样处理数据的层次结构。 (不使用graphx) 让我们说我有一个用平面文件表示的树
有没有办法强制Spark按以下顺序减少:
如果我使用" reduceByKey"订单是随机的。 谢谢你的提示
答案 0 :(得分:0)
您可以自己编写代码来执行此操作,但AFAIK您无法通过API执行此操作。这样做的方法将根据用例和图的特征(例如,大量边缘,密集计算,大节点/数据)而变化
假设节点数量较少,一种方法是逐级处理图形。为此,您需要将图层次结构信息提取到Broadcast变量,并应用一组联合和过滤器,直到您计算出顶级节点。
正如@ zero323所说,如果你是Spark新手,这可能有点棘手,但在我的用例中,它完美地聚合了+80000个节点和100s GB的底层数据。
考虑它的方法是每次调用Spark聚合一个图表级别。因此,如果图表的深度很高或者您有数十亿个节点,则此方法将无效。