¿Cómo encontrar elementos comunes entre dos columnas de matriz?

Tengo dos columnas de cadena separadas por comas sourceAuthors ytargetAuthors).

val df = Seq(
  ("Author1,Author2,Author3","Author2,Author3,Author1")
).toDF("source","target")

Me gustaría agregar otra columnanCommonAuthors con el número de Autores comunes.

He intentado hacer esto de esta manera:

def myUDF = udf { (s1: String, s2: String) =>
  s1.split(",")
  s2.split(",")
  s1.intersect(s2).length
}
val newDF = myDF.withColumn("nCommonAuthors", myUDF($"source", $"target"))

Obtuve el siguiente error

Exception en el hilo "main" java.lang.UnsupportedOperationException: el esquema para el tipo Unit no es compatible

¿Alguna idea de por qué me sale este error? ¿Cómo encontrar los elementos comunes entre dos columnas?

Respuestas a la pregunta(3)

Su respuesta a la pregunta