如何从 Array[Array[Int]] 列 DataFrame 中提取子数组

How to extract subArray from Array[Array[Int]] column DataFrame

我有一个这样的数据框:

+---------------------------------------------------------------------+
|ARRAY                                                                |
+---------------------------------------------------------------------+
|[WrappedArray(1, 2, 3), WrappedArray(4, 5, 6), WrappedArray(7, 8, 9)]|
+---------------------------------------------------------------------+

我用这段代码来创建它:

case class MySchema(arr: Array[Array[Int]])
val df = sc.parallelize(Seq(
    Array(Array(1,2,3),
          Array(4,5,6),
          Array(7,8,9))))
      .map(x => MySchema(x))
      .toDF("ARRAY")

我想得到这样的结果:

+-----------+
|ARRAY      |                                                          |
+-----------+
|[1, 2, 3]  |
|[4, 5, 6]  |
|[7, 8, 9]  |
+-----------+

你有什么想法吗?

我已经尝试调用 udf 在我的 Array 行上执行 flatmap(x => x) 但我得到的结果不正确:

+---------------------------+
|ARRAY                      |
+---------------------------+
|[1, 2, 3, 4, 5, 6, 7, 8, 9]|
+---------------------------+

感谢您的帮助

你可以爆炸:

import org.apache.spark.sql.functions.{col, explode}
df.select(explode(col("array")))