【发布时间】:2019-01-14 23:12:38
【问题描述】:
我有一个DataFrame A的大数据。
我想对其应用一些过滤器并制作一个 DataFrame B,并为未过滤的数据制作另一个 DataFrame C。
综上所述,类似于下面的伪代码。
A.foreach(_ => {
if (isFiltered(_)) addToDF_B()
else addToDF_C()
})
而且,B 和 C 将被写入不同的表。
我尝试先过滤 B 并使用 A.except(B) 制作 C,但是如果方案具有复杂类型(映射或数组),则它不起作用。
除了过滤两次,还有什么方法可以一次性完成吗?
提前致谢。
【问题讨论】:
-
这个问题值得链接,我认为:stackoverflow.com/questions/32970709/… 对于 RDD 来说,没有好的本地方式存在,但是通过额外的库或通过破解分区,它成为可能。
标签: apache-spark apache-spark-sql