我们可以使用以下命令从Java对象列表创建数据框:
DataFrame df = sqlContext.createDataFrame(list, Example.class);
对于Java,Spark可以直接从类中推断出架构,在本例中为Example.class
。
在Scala的情况下,有没有办法做同样的事情?
答案 0 :(得分:4)
如果你在scala中使用case类,那么这个开箱即用
// define this class outside main method
case class MyCustomObject(id:Long,name:String,age:Int)
import spark.implicits._
val df = Seq(
MyCustomObject(1L,"Peter",34),
MyCustomObject(2L,"John",52)
).toDF()
df.show()
+---+-----+---+
| id| name|age|
+---+-----+---+
| 1|Peter| 34|
| 2| John| 52|
+---+-----+---+
如果你想使用非案例类,你需要扩展特征Product
并自己实现这些方法