首页 > 解决方案 > Spark java.lang.UnsupportedOperationException:空集合

问题描述

当我运行此代码时,在某些情况下会出现空集合错误。

    val result = df
                  .filter(col("channel_pk") === "abc")
                  .groupBy("member_PK")
                  .agg(sum(col("price") * col("quantityOrdered")) as "totalSum")
                  .select("totalSum")
                  .rdd.map(_ (0).asInstanceOf[Double]).reduce(_ + _)

错误发生在这一行:

.rdd.map(_ (0).asInstanceOf[Double]).reduce(_ + _)

当collection为空时,我想result等于0。我该怎么做?

标签: scalaapache-sparkspark-dataframe

解决方案


该错误仅出现在该行,因为这是您第一次执行某些操作。在火花不执行任何事情之前(懒惰)。你的 df 只是空的。您可以通过在之前添加来验证它: assert(!df.take(1).isEmpty)


推荐阅读