# 基于spark的各种数据分析算法
## 基于Spark SQL的找出树状数据表中的所有路径与其相应的权重(代价)算法
1. 树状数据:
表的结构如下的数据即树状数据,id表示当前元素的标识,pid为当前元素的父元素标识,cost代表由当前元素到父元素的代价。
| id | pid | cost(optional) |
| ---- | ---- | -------------- |
| 1019 | 801 | 9.2 |
| 1018 | 801 | 9.1 |
| 1020 | 1018 | 9.0 |
2. 计算结果:
| id | pid | cost(optional) |
| ---- | ---- | -------------- |
| 1019 | 801 | 9.2 |
| 1020 | 801 | 18.1 |
| 1020 | 1018 | 9.0 |
计算结果中id列表示所有的叶子节点,pid列为叶子节点所有的祖父节点,并按照代价由上到下排列,即根节点到叶子节点的整个路径。
至于为什么以这样的方式存储路径,是发现该结构能应付最广泛的业务。
3. 用法:
- 若表中只有一棵树,将元素列名和父元素列名传入,若需要计算代价,将代价列名传入:
```python
alg = FetchAllPaths('id', 'pid', weight='cost')
result = alg.run(df, spark)
```
- 若表中有多棵树,需要将能唯一标识一棵树的所有列名传入
```python
alg = FetchAllPaths('id', 'pid', weight='cost', limit_cols=['col1', 'col2',...])
result = alg.run(df, spark)
```
基于spark的数据分析算法,已有1:找出树状数据表中的所有路径与其相应的权重(代价)算法+源代码+文档说明
版权申诉
3 浏览量
2024-04-18
16:06:48
上传
评论
收藏 7KB ZIP 举报
机器学习的喵
- 粉丝: 491
- 资源: 1259
最新资源
- 基于matlab实现用有限元法计算电磁场的Matlab工具 .rar
- 基于matlab实现有限元算法 计算电磁场问题 边界条件包括第一类边界和第二类边界.rar
- 基于matlab实现用于计算不同车重下的电动汽车动力性和经济性.rar
- 基于matlab实现遗传算法求解多车场车辆路径问题 有多组算例可以用.rar
- 浏览器.apk
- 基于matlab实现是一个matlab中的power system 中搭建的一个模型
- 基于JSP毕业设计-教学管理系统(源代码+论文).zip
- 基于JSP毕业设计-家政管理系统-毕业设计.zip
- 基于Python实现淘宝商品评论采集(含逆向)源代码
- 基于matlab实现多目标进化算法NSGAⅡ&Matlab讲解.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈