¿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?