在Spark Scala中分解数据帧列中的元组数组

在Spark Scala中分解数据帧列中的元组数组,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我想从数据帧分解数组[(Int,Int)]列 输入: colA newCol 1 [[1a, 2],[3c, 5u]] 2 [[1c, 9m], [5e, 7l]] 输出: colA newCol 1 1a 1 3c 2 1c 2 5e 这是我的方法 +----+--------------------+ |col1|col2 | +----+--------------------+ |1 |[[1a, 2b

我想从数据帧分解数组[(Int,Int)]列

输入:

colA newCol
1     [[1a, 2],[3c, 5u]]
2     [[1c, 9m], [5e, 7l]]
输出:

colA newCol
1     1a
1     3c
2     1c
2     5e
这是我的方法

+----+--------------------+
|col1|col2                |
+----+--------------------+
|1   |[[1a, 2b], [3c, 5u]]|
|2   |[[1c, 9m], [5e, 7l]]|
+----+--------------------+
这是您的数据帧和

df.withColumn("t", explode($"col2")).selectExpr("col1", "t[0]").show
我的代码结果是

+----+----+
|col1|t[0]|
+----+----+
|   1|  1a|
|   1|  3c|
|   2|  1c|
|   2|  5e|
+----+----+

请使用文本而不是图像。如果遇到任何错误,还应添加您尝试过的内容和错误。要了解更多信息,请阅读。如果
t[0]
列是整数类型,我们如何解决这个问题让我给出您所需的数据帧。我们正在尝试这样的操作:
val res=df.withColumn(“tup”),explode($“newCol”)。select(“colA”,“tup”)
res.select(col(“col”),col(“tup”)(“value”)。as(“uId”)