scala - 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。我该怎么做?
解决方案
该错误仅出现在该行,因为这是您第一次执行某些操作。在火花不执行任何事情之前(懒惰)。你的 df 只是空的。您可以通过在之前添加来验证它:
assert(!df.take(1).isEmpty)
推荐阅读
- postgresql - 如何添加部分约束并且也适用于postgres的重叠日期范围?
- android - Android Kotlin:如果我不选择要保存在应用程序上的图像,应用程序将无法运行
- javascript - 支付计算器,但没有任何反应
- hibernate - Spring Data JPA 从 UPDATE @Query 返回列
- javascript - 为什么我不能第二次将组件导入 VUE?
- sql - Row_number 未显示 1 个等级
- android - Android Billing v3 - 订阅 - 未找到产品
- haproxy - haproxy 转发客户端证书 x509
- angular - Keycloak 直接授权流程是否安全?
- java - 将字符串值与 arraylist 进行比较