Spark-Spark SQL隐式和构造子数组

时间:2018-12-02 15:38:38

标签: apache-spark-sql

我正在使用数据帧和隐式建立数据帧,但看不到如何构造子数组。我可以很好地使用'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")
                  )

0 个答案:

没有答案