Spark文档演示了如何使用Scala case类推断模式从RDD创建DataFrame。我尝试使用sqlContext.createDataFrame(RDD, CaseClass)
来复制这个概念,但我的DataFrame最终为空。下面是我的Scala代码:
// sc is the SparkContext, while sqlContext is the SQLContext.
// Define the case class and raw data
case class Dog(name: String)
val data = Array(
Dog("Rex"),
Dog("Fido")
)
// Create an RDD from the raw data
val dogRDD = sc.parallelize(data)
// Print the RDD for debugging (this works, shows 2 dogs)
dogRDD.collect().foreach(println)
// Create a DataFrame from the RDD
val dogDF = sqlContext.createDataFrame(dogRDD, classOf[Dog])
// Print the DataFrame for debugging (this fails, shows 0 dogs)
dogDF.show()
我看到的输出是:
Dog(Rex)
Dog(Fido)
++
||
++
||
||
++
我错过了什么?
谢谢!
case class
移到main
之外时才能正常工作。@Vitalii,@sparkour...是否有任何解释为什么需要将case class
移到main
之外。 - Praveen Labstract
,因此我收到了“abstract
是保留关键字,不能用作字段名”的错误提示。有什么解决方法吗? - Anish