【发布时间】:2019-04-11 08:33:50
【问题描述】:
考虑一棵树及其 DataFrame 表示(左表):
0 ┌───────┬───────┐ ┌───────┬───────┐
├──1 │ id │ parent│ │ id │ path │
│ ├──2 ├───────┼───────┤ ├───────┼───────┤
│ └──3 │ 5 │ 0 │ │ 5 │0/5 │
│ └──4 ├───────┼───────┤ ├───────┼───────┤
└──5 │ 4 │ 3 │ │ 4 │0/1/3/4│
├───────┼───────┤ => ├───────┼───────┤
│ 3 │ 1 │ │ 3 │0/1/3 │
├───────┼───────┤ ├───────┼───────┤
│ 2 │ 1 │ │ 2 │0/1/2 │
├───────┼───────┤ ├───────┼───────┤
│ 1 │ 0 │ │ 1 │0/1 │
├───────┼───────┤ ├───────┼───────┤
│ 0 │ null │ │ 0 │0 │
└───────┴───────┘ └───────┴───────┘
为树的每个节点(右表)获取树路径(从根开始)的最有效方法是什么?
允许所有可能的方法:SQL 查询、DataFrame 方法、GraphX 等。
注意:带有递归连接的经典 SQL 解决方案不适用于 Spark DataFrame。
【问题讨论】:
-
我怀疑 GraphX 会是可行的方法,但我怀疑它会非常有效。
-
是的,看来这个任务可以在不初始化 Graph 的情况下解决。
-
@OlegMikhailov,RDD 的
mapPartitions怎么样? -
@Sai,所有的方法都是好的,有效的
标签: apache-spark dataframe graph tree hierarchy