Spark: Agregar columna al marco de datos condicionalmente

Estoy tratando de tomar mis datos de entrada:

A    B       C
--------------
4    blah    2
2            3
56   foo     3

Y agregue una columna al final según si B está vacío o no:

A    B       C     D
--------------------
4    blah    2     1
2            3     0
56   foo     3     1

Puedo hacer esto fácilmente registrando el marco de datos de entrada como una tabla temporal y luego escribiendo una consulta SQL.

Pero realmente me gustaría saber cómo hacer esto con solo los métodos Scala y no tener que escribir una consulta SQL dentro de Scala.

He intentado.withColumn, pero no puedo lograr que haga lo que quiero.

Respuestas a la pregunta(3)

Su respuesta a la pregunta