我正在使用数据帧和隐式建立数据帧,但看不到如何构造子数组。我可以很好地使用'struct',并且可以对其结果进行别名化,但是我看不到如何对子数组进行类似的操作并对其进行别名化。我正在使用Scala和Spark 2.1,下面是我们进行子转换的简化,数组可以更深,但是很好奇如何以这种方式构建别名子数组?
任何帮助表示感谢!
例如下面的作品
import spark.sqlContext.implicits._
val newDf = oldDF
.select(
$"id",
$"field1",
$"field2",
$"field3",
struct(
$"field4.sub1",
$"field4.sub2"
).alias("field4")
)
但这不是
import spark.sqlContext.implicits._
val newDf = oldDF
.select(
$"id",
$"field1",
$"field2",
$"field3",
struct(
$"field4.sub1",
$"field4.sub2"
).alias("field4"),
array(
$"field5.sub1",
$"field5.sub2"
).alias("field5")
)
也没有
import spark.sqlContext.implicits._
val newDf = oldDF
.select(
$"id",
$"field1",
$"field2",
$"field3",
struct(
$"field4.sub1",
$"field4.sub2"
).alias("field4"),
array(
struct(
$"field5.sub1",
$"field5.sub2"
)
).alias("field5")
)