scala 如何将一个 Dataframe 的聚合状态共享给另一个 Dataframe ?

deyfvvtc  于 2023-06-23  发布在  Scala
关注(0)|答案(1)|浏览(133)

我有两个 Dataframe df1df2
我想根据df1的一些聚合结果过滤df2
比如说,

val resultDf1 = df1
    .filter(// some filter logic)
val aggDf1 = resultDf1.agg(min("A"), max("A"))

df2
    .filter(col("myColumn") > aggDf1.getInt(0))
    .filter(col("myColumn") < aggDf1.getInt(1))

在spark中实现这一点的规范方法是什么?

5lhxktic

5lhxktic1#

您可以收集驱动程序的最小/最大值,并在第二个查询中使用它们,例如:

val aggDf1 = resultDf1.agg(min("A"), max("A"))
val (minValue, maxValue) = aggDf1.as[(Int, Int)].first

df2.filter(col("myColumn") > minValue && col("myColumn") < maxValue)

相关问题