我需要类似于 randomSplit 函数的东西:

val Array(df1, df2) = myDataFrame.randomSplit(Array(0.6, 0.4))

但是,我需要根据 bool 条件拆分 myDataFrame。是否存在类似以下内容?
val Array(df1, df2) = myDataFrame.booleanSplit(col("myColumn") > 100)

我不想做两个单独的 .filter 调用。

最佳答案

不幸的是,DataFrame API 没有这样的方法,要按条件拆分,您必须执行两个单独的 filter 转换:

myDataFrame.cache() // recommended to prevent repeating the calculation

val condition = col("myColumn") > 100
val df1 = myDataFrame.filter(condition)
val df2 = myDataFrame.filter(not(condition))

关于scala - 根据条件拆分 Spark DataFrame,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41960052/

10-13 09:12