在Scala中过滤空值

在Scala中过滤空值,scala,hive,Scala,Hive,我有一个配置单元表,在某些列中有null和空值。我的表中的空值表示法是\N。 我试图选择Scala中列a不为null的行。 我试过使用 a如果(a等于(\\N)) b如果(!选项(a).getOrElse(“”.isEmpty) c。使用长度(修剪(a)) 这些选项对我的代码都不起作用,要么过滤器不起作用,要么排除所有行 有人有什么建议吗?根据,Hive的\N是一个字符串,即“\N”,但是在Java中,因此在Scala中表示为“\N”,可以使用{Scala.Predef.string=Java.

我有一个配置单元表,在某些列中有null和空值。我的表中的空值表示法是
\N
。 我试图选择Scala中列a不为null的行。 我试过使用

a<代码>如果(a等于(\\N))

b<代码>如果(!选项(a).getOrElse(“”.isEmpty)

c。使用
长度(修剪(a))

这些选项对我的代码都不起作用,要么过滤器不起作用,要么排除所有行

有人有什么建议吗?

根据,Hive的\N是一个字符串,即“\N”,但是在Java中,因此在Scala中表示为“\N”,可以使用{Scala.Predef.string=Java.lang.string}.matches(\\N”)进行匹配,如下测试:

val s = "\\N"
println(s.matches("\\\\N")) // prints true

如果这对您不起作用,请提供有关如何访问配置单元表和配置单元版本的信息,以便我可以尝试复制错误。

此处的更多代码可能会有所帮助。当我创建
val a=“\\N”
,并使用您的选项(a)进行测试时,我得到
Boolean=true
,这表明这应该有效。关于您的表或筛选(理想情况下两者)的更多信息会有所帮助。您如何通过scala访问配置单元?从选择行推断出
a
的类型是什么?例如,过滤时会弹出哪个错误?