在Spark中,如果我进行汇总,有什么方法可以使用这些结果而无需执行任何操作?
我正在尝试构建一个具有中间阶段的图,该阶段进行汇总,然后根据结果有条件地进行分支。据我所知,唯一的方法是单独执行每个阶段。
例如,在以下人为设计的代码中,我希望基于聚合的值执行条件语句,但是我想使它起作用的唯一方法是对聚合进行操作:
df = spark.range(5)
df = df.withColumn('flag',when(col('id') < 10,0).otherwise(1))
df = df.withColumn('test',when(df.agg({'flag': 'max'}).first()[0] < lit(1),True).otherwise(False))
... Do more stuff ...
理想情况下,我希望这是一种转变,而不是采取行动,但我找不到任何证据证明这是可能的。