在斯卡拉创建数据帧
问题描述:
wordsDF = sqlContext.createDataFrame([('cat',), ('elephant',), ('rat',), ('rat',), ('cat',)], ['word'])
这是一种从python中的元组列表创建数据框的方法。我怎样才能在scala中做到这一点?我是新来的斯卡拉,我正在解决它的问题。在斯卡拉创建数据帧
任何帮助将不胜感激!
答
一个简单的方法,
val df = sc.parallelize(List((1,"a"), (2,"b"))).toDF("key","value")
等df.show
+---+-----+
|key|value|
+---+-----+
| 1| a|
| 2| b|
+---+-----+
参考样例在Programmatically Specifying the Schema与createDataFrame
构建DataFrame
。
答
要创建数据框,您需要创建SQLContext。
val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
// this is used to implicitly convert an RDD to a DataFrame , after importing it you can use .toDF method
import sqlContext.implicits._
现在你可以创建dataframes
val df1 = sc.makeRDD(1 to 5).map(i => (i, i * 2)).toDF("single", "double")
了解更多关于创建dataframes的here
可能的复制[转换的RDD到数据帧中使用Scala的星火(HTTP://计算器。 COM /问题/ 33023330 /转换-AN-RDD至A-数据帧中的火花 - 使用 - 斯卡拉) –