Scala Spark 2.0:将Spark数据帧中的管道数据展平到单独的行中

Scala Spark 2.0:将Spark数据帧中的管道数据展平到单独的行中,scala,apache-spark,Scala,Apache Spark,我有一个DF,比如说10列,其中一列有字符串数据,以Pipe作为分隔符 +-------------+ |offer_ids | +-------------+ |9|10|11|12| | +-------------+ 我需要将其存储在RDMBS中,RDMBS有一个INT列,上面的每个值(| 9 | 10 | 11 | 12 |)将是一个单独的记录,DF中的所有其他列保持不变 例如,在 inputDF.write.mode(SaveMode.Append).jdbc 应该是,

我有一个DF,比如说10列,其中一列有字符串数据,以Pipe作为分隔符

+-------------+
|offer_ids    |
+-------------+
|9|10|11|12|  |
+-------------+
我需要将其存储在RDMBS中,RDMBS有一个INT列,上面的每个值(| 9 | 10 | 11 | 12 |)将是一个单独的记录,DF中的所有其他列保持不变

例如,在

 inputDF.write.mode(SaveMode.Append).jdbc
应该是,

insert into <table name> values (<values for other columns>, 9)
insert into <table name> values (<values for other columns>, 10)
insert into <table name> values (<values for other columns>, 11)
insert into <table name> values (<values for other columns>, 12)
插入值(,9)
插入值(,10)
插入值(,11)
插入值(,12)
这可能吗

explode()函数可用于:

val df = spark.createDataFrame(List(("a", "b", 1, 2, 3) )).toDF("a", "b", "d1", "d2", "d3")
df.selectExpr("a", "b", "explode(array(d1,d2,d3))").show

+---+---+---+
|  a|  b|col|
+---+---+---+
|  a|  b|  1|
|  a|  b|  2|
|  a|  b|  3|
+---+---+---+