Scala中Map字段的空白值句柄

时间:2018-10-16 10:30:35

标签: scala apache-spark scala-collections

我有以下代码:-

val curRow: com.datastax.driver.core.Row
val stats = curRow.getMap[String, Int]("stats", classOf[String], classOf[Int])
stats = Map("d1" -> 1, "d2" -> 0)
stats.get("d1").getOrElse(0)
stats.get("d2").getOrElse(0)
stats.get("d3").getOrElse(0)

我用地图列创建了一个案例类。现在想处理它没有领域。对于“ d3”,如果我只写.get,则得到的错误为None.get,如果尝试使用getOrElse处理它,则无法执行此操作。

type mismatch; found : Any required: Int

在整数情况下,应该如何处理空白字段。

谢谢

1 个答案:

答案 0 :(得分:1)

统计信息映射应该是Map [String,Int]而不是Map [String,Integer],因为这将对应于java.lang.Integer。

SELECT 
        first_name
        ,last_name
        ,position
        ,office
        ,start_date
        ,salary
    FROM Employees
    FOR JSON PATH,ROOT('Employees'),INCLUDE_NULL_VALUES

将输出作为

val stats: Map[String, Int] = Map("d1" -> 1, "d2" -> 9)
stats.get("d1").getOrElse(0)
stats.get("d2").getOrElse(0)
stats.get("d3").getOrElse(0)

因此,一旦进行了更改,就不会收到错误消息。