spark sql function explode
поможет в этом случае использования.
См. Пример кода ниже;Я также добавил шаг подсчета слов:
import org.apache.spark.sql.functions._
import spark.implicits._
val rows = List(
"a, b, c, d",
"a,b,c,d",
"e,f,g"
)
val df = spark.sparkContext.parallelize(rows).toDF("Result")
df.show()
// +----------+
// | Result|
// +----------+
// |a, b, c, d|
// | a,b,c,d|
// | e,f,g|
// +----------+
val allWords = df.select(explode(split(col("Result"), ",")).as("Result"))
allWords.show()
// +------+
// |Result|
// +------+
// | a|
// | b|
// | c|
// | d|
// | a|
// | b|
// | c|
// | d|
// | e|
// | f|
// | g|
// +------+
val countPerWord = allWords.groupBy(trim(col("Result")).alias("Result"))
.agg(countDistinct("Result").alias("Count"))
countPerWord.show()
// +------+-----+
// |Result|Count|
// +------+-----+
// | g| 1|
// | f| 1|
// | e| 1|
// | d| 2|
// | c| 2|
// | b| 2|
// | a| 2|
// +------+-----+