【发布时间】:2020-06-02 14:41:06
【问题描述】:
当我尝试在数据框上应用过滤器功能时,我遇到了一个困惑的问题。
如果一行的字段为null,则isNotNull1 为假,isNotNull2 为真。代码如下:
val res = df.filter(row => {
val isNotNull1 = (row.getAs[Long]("video_id") != null)
val videoId = row.getAs[Long]("video_id")
val isNotNull2 = (videoId != null)
isNotNull2
})
我可以理解isNotNull2 是真的,正如getAs[T](fieldName: String) 的文档所说For primitive types if value is null it returns 'zero value' specific for primitive。
这里是否发生了 scala 隐式转换?谢谢你的帮助。
【问题讨论】:
标签: scala dataframe apache-spark