Если у вас есть фрейм данных / набор данных как
+---+----+-----+----+------+------+
|ID |Name|Level|SPC |Rating|salary|
+---+----+-----+----+------+------+
|23 |sam |3 |HBS |3.5 |4000 |
|43 |Nair|4 |KSTk|4.0 |5000 |
|56 |Rom |5 |MNC |3.0 |3000 |
+---+----+-----+----+------+------+
, затем вы можете написать функцию udf
для преобразования значений строки столбца SPC
в массив каждого символа в виде строки, а затем использовать функцию explode
в качестве
import org.apache.spark.sql.functions._
def flattenStringUdf = udf((spc: String) => spc.toList.map(_.toString))
df.withColumn("SPC", explode(flattenStringUdf(col("SPC")))).show(false)
, который должен дать вам
+---+----+-----+---+------+------+
|ID |Name|Level|SPC|Rating|salary|
+---+----+-----+---+------+------+
|23 |sam |3 |H |3.5 |4000 |
|23 |sam |3 |B |3.5 |4000 |
|23 |sam |3 |S |3.5 |4000 |
|43 |Nair|4 |K |4.0 |5000 |
|43 |Nair|4 |S |4.0 |5000 |
|43 |Nair|4 |T |4.0 |5000 |
|43 |Nair|4 |k |4.0 |5000 |
|56 |Rom |5 |M |3.0 |3000 |
|56 |Rom |5 |N |3.0 |3000 |
|56 |Rom |5 |C |3.0 |3000 |
+---+----+-----+---+------+------+
Надеюсь, ответ полезен