Scala - 将嵌套数据框架映射到类

时间:2018-06-04 15:47:52

标签: scala class apache-spark dataframe nested

我们有一个从JSon读取的嵌套DataFrame,我们想从不同级别选择一些字段并直接将其转换为类。

我们想要类似的东西:

(火花SHELL)

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val path = "s3://path"
val df = sqlContext.read.json(path).as[Brand]

品牌在哪里:

case class Brand(/* we don't know how to define the columns */)
{
    def id = column ("lvl1.lvl2.id")
    def title = column("lvl1.title")
}

我想要的结果就像是

---------------
| id | tittle |
---------------
| 1  |   a    |
---------------
| 2  |   b    |
---------------
| 3  | null   |
---------------

我们发现最接近这种方法的做法是:

case class Brand(id:Int,title:String)
df.select($"lvl1.lvl2.id",$"lvl1.title").as[Brand]

但这种方法不利于自动化。

有一种方法可以第一种方式开发它吗?

提前致谢。

0 个答案:

没有答案