Я строю фрейм данных, используя фреймы данных и имплициты, и не могу понять, как построить подмассив.Я могу использовать «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")
)