Основная проблема заключается в том, что дженерики на самом деле не работают с примитивными типами. Scala компилятор пытается представить иллюзию того, что они делают, но вы наткнулись на случай, когда он терпит неудачу.
Так что row.getAs[Long]("video_id")
"действительно" row.getAs[java.lang.Long]("video_id")
, который возвращает null
в вашем случае поэтому строка val isNotNull1
сравнивает null != null
, что неверно.
В строке val videoId
, поскольку ее тип Long
, он становится row.getAs[java.lang.Long]("video_id").asInstanceOf[Long]
. Это 0
, а в следующей строке вы делаете 0.asInstanceOf[java.lang.Long] != null
, что верно.