【发布时间】:2019-04-25 19:47:53
【问题描述】:
我有一个案例类
case class DDD(abc: String, v1: String, v2: String)
我有一个基于 DDD(模式)的元组。所以想象一下
val sample1 = DDD("a1", "v0001", "v0002")
然后我用这样的元组值制作一个地图
val tMap = Map("col_name" -> sample1.abc, "col_old" -> sample1.v1, "col_new" -> sample1.v2)
但在某些情况下,我的元组中的 v1 或 v2 值可能是空白/空/空,如果该值不存在,我不想将该键值对添加到我的映射中,所以 举例
If
val sample2 = DDD("a1", "null", "v0002")
Then
val tMap = Map("col_name" -> sample1.abc, "col_new" -> sample1.v2)
我可以通过使用下面的 if 条件来实现这一点
val sample2 = DDD("a1", "null", "v0002")
val tMap = Map("col_old" -> (if(sample2.v1 != "null") sample2.v1),
"col_new" -> (if(sample2.v2 != "null") sample2.v2
"abc" -> (if(sample2.abc != "null") sample2.abc
)
但需要做并了解我如何以更简洁的功能方式实现它。 ???
谢谢
【问题讨论】:
-
提示:你可以定义case类对象DDD,这里你写你根据你的具体情况定义你的辅助构造函数
标签: scala apache-spark