def predict(model: LRModel,query: Query): PredictedResult = {

val categorical_val = Array[String]("Type","Month","Dept","Size","IsHoliday")
val ordinary_val = Array[String]()

val sc = new SparkContext()
val sqlContext = new SQLContext(sc)
val query_seq = sc.parallelize(Seq(query))
val df = sqlContext.createDataFrame(query_seq).toDF("Type","Month","Dept","Size","IsHoliday")

val features = process_Data(df = df,categorical_val = categorical_val,ordinary_val = ordinary_val)
val label = model.linear.predict(Vectors.dense(features))
new PredictedResult(label) }

我试图将Seq转换为DataFrame,但是我发现有很多方法可以使用SparkContext在线创建。问题是我没有para SparkContext,所以我想问问是否还有其他创建DataFrame的方法。我是Scala和Spark的新手!

最佳答案

SparkContext是Spark功能的主要入口点。 SparkContext表示与Spark集群的连接,可用于在该集群上创建RDD,累加器和广播变量。 DataFrame是组织为命名列的分布式数据集合。您可以在此处 checkout 文档:https://spark.apache.org/docs/1.6.1/sql-programming-guide.html

您可以从Seq创建一个DataFrame,如下所示:

import sqlContext.implicits._
val df = Seq(("A1", "B1", "C1", "D1", "E1"), ("A2", "B2", "C2", "D2", "E2")).toDF("Type","Month","Dept","Size","IsHoliday")

关于scala - 如果无法使用SparkContext,如何创建DataFrame?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51997223/

10-13 08:01