scala - 使用 Spark 的不同值的增量过滤器 DataFrame
问题描述
首先,我有一个具有不同值的数据框:
| Days |
| day1 |
| day2 |
| day3 |
然后,我有另一个 Dataframe 有一些像这样的值
| A | B | Days |
| 1 | 2 | day1 |
| 3 | 4 | day3 |
| 5 | 6 | day3 |
| 7 | 8 | day2 |
我想用第一个数据框的值过滤第二个数据框。首先我想获得一个过滤day1的数据框,然后是day1和day2,最后是day1、day2和day3(增量)。
输出将是:
| A | B | Days |
| 1 | 2 | day1 |
| A | B | Days |
| 1 | 2 | day1 |
| 7 | 8 | day2 |
| A | B | Days |
| 1 | 2 | day1 |
| 7 | 8 | day2 |
| 3 | 4 | day3 |
| 5 | 6 | day3 |
非常感谢
解决方案
通过与 and() 运算符结合使用 filter() 函数数据框。
例子
var days = df1.collectAsList
import spark.implicits._
val d1 = df2.filter($"Days".equalTo(days.get(0).getString(0)))
val d2 = df2.filter($"Days".equalTo(days.get(0).getString(0))
.and($"Days".equalTo(days.get(1).getString(0))))
val d3 = df2.filter($"Days".equalTo(days.get(0).getString(0))
.and($"Days".equalTo(days.get(1).getString(0)))
.and($"Days".equalTo(days.get(2).getString(0)))
)
推荐阅读
- java - Gridbaglayout 布局问题(java swing)
- python - cx_freeze 不是受支持的轮子
- dart - 无法创建颤振项目
- php - 使用 PHP 将网络服务器上的“提交”更改到 Github 存储库不起作用
- c - 带有gcc的C中的“分段错误(核心转储)”是什么意思?
- php - 匹配数组并更新数组一中的值
- c++ - Scripting::LState 的多重定义
- php - 所有 Laravel 环境变量的列表?
- c# - DocX ReplaceText 使用来自 Xceed 的 WPF 工具包的富文本
- javascript - 查找任何一年的星期几,plusYears() 函数不起作用