【发布时间】:2019-08-06 00:37:03
【问题描述】:
let x = new Row(job_id="hello", title=null)
x match {
case Row(
job_id: String,
title: Option[String]) => println("successful match")
case _ => println("failed!")
}
对于上面的代码,当我尝试与选项类型匹配时,它实际上与_ 匹配,并给出如下所示的警告:
warning: non-variable type argument String in type pattern Option[String] is unchecked since it is eliminated by erasure
基本上,Row 结构表示具有可为空值的 sql 行,我希望能够对其进行模式匹配。有谁知道怎么做?
【问题讨论】:
-
行在哪里定义?另外,我认为你想要 None,而不是 null。
-
如果您使用
Row,这是不可能的,因为Row使用原始值,其中包括用于缺少值的nulls。 -
Row 来自 spark 所以它实际上是一个空值。
标签: sql scala apache-spark pattern-matching