Вы можете получить те же результаты в абстракции df (). Проверьте это
val df = Seq( (1, "Hello how are you"),(1, "I am fine"),(2, "Yes you are")).toDF("a","b")
df.show(false)
df.flatMap( r => { val y = r.getString(1).split(" "); ( 0 until y.size).map( i => (r.getInt(0), y(i))) }).show
Результаты:
+---+-----------------+
|a |b |
+---+-----------------+
|1 |Hello how are you|
|1 |I am fine |
|2 |Yes you are |
+---+-----------------+
+---+-----+
| _1| _2|
+---+-----+
| 1|Hello|
| 1| how|
| 1| are|
| 1| you|
| 1| I|
| 1| am|
| 1| fine|
| 2| Yes|
| 2| you|
| 2| are|
+---+-----+