Spark sql cómo explotar sin perder valores nulos

Tengo un Dataframe que estoy tratando de aplanar. Como parte del proceso, quiero explotarlo, así que si tengo una columna de matrices, cada valor de la matriz se usará para crear una fila separada. Por ejemplo,

id | name | likes
_______________________________
1  | Luke | [baseball, soccer]

debe convertirse

id | name | likes
_______________________________
1  | Luke | baseball
1  | Luke | soccer

Este es mi codigo

private DataFrame explodeDataFrame(DataFrame df) {
    DataFrame resultDf = df;
    for (StructField field : df.schema().fields()) {
        if (field.dataType() instanceof ArrayType) {
            resultDf = resultDf.withColumn(field.name(), org.apache.spark.sql.functions.explode(resultDf.col(field.name())));
            resultDf.show();
        }
    }
    return resultDf;
}

El problema es que en mis datos, algunas de las columnas de la matriz tienen valores nulos. En ese caso, se elimina toda la fila. Entonces este marco de datos:

id | name | likes
_______________________________
1  | Luke | [baseball, soccer]
2  | Lucy | null

se convierte

id | name | likes
_______________________________
1  | Luke | baseball
1  | Luke | soccer

en lugar de

id | name | likes
_______________________________
1  | Luke | baseball
1  | Luke | soccer
2  | Lucy | null

¿Cómo puedo explotar mis matrices para no perder las filas nulas?

Estoy usando Spark 1.5.2 y Java 8