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 是组织成命名列的分布式数据集合。您可以在此处查看文档: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/