The following Scala (Spark 1.6) code for reading a value from a Row fails
with a NullPointerException when the value is null.

val test = row.getAs[Int]("ColumnName").toString

while this works fine

val test1 = row.getAs[Int]("ColumnName") // returns 0 for nullval
test2 = test1.toString // converts to String fine

What is causing NullPointerException and what is the recommended way to
handle such cases?

PS: getting row from DataFrame as follows:

 val myRDD = myDF
                .repartition(partitions)
                .mapPartitions {
                  rows =>
                    rows.flatMap {
                row =>
                  functionWithRows(row) //has above logic to read null
column which fails
              }
          }

functionWithRows has then above mentioned NullPointerException

MyDF schema:

root
 |-- LDID: string (nullable = true)
 |-- KTAG: string (nullable = true)
 |-- ColumnName: integer (nullable = true)

Reply via email to