我们有一个从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]
但这种方法不利于自动化。
有一种方法可以第一种方式开发它吗?
提前致谢。