如何设置阵列的类型与在火花阶数据集

问题描述:

我有一个源数据是这样的:如何设置阵列的类型与在火花阶数据集

{A:123,B:"Hello world",C:[{D:123,E:"Spark"}]} 

,我有一个对象:

case class TestClass (A:Int;B:String;C:???) 
val obj:Dataset[TestClass] = df.as[TestClass] 

我应该如何定义的类型C?

一种选择

case class Nested(D: Long, E: String) 
case class TestClass (A: Long, B:String, C: Seq[Nested]) 

用法:

spark.read.json(sc.parallelize(
    Seq("""{"A": 123, "B": "Hello world", "C": [{"D": 123, "E": "Spark"}]}""" 
))).as[TestClass].show 

+---+-----------+-------------+ 
| A|   B|   C| 
+---+-----------+-------------+ 
|123|Hello world|[[123,Spark]]| 
+---+-----------+-------------+ 
+0

谢谢您的回答,这是运作良好。 –