考虑一棵树及其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 DataFrames 不起作用。
mapPartitions
怎么样? - Sai