如果无法使用SparkContext,如何创建DataFrame?

时间:2018-08-24 03:53:14

标签: scala apache-spark

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的新手!

1 个答案:

答案 0 :(得分:0)

SparkContext是Spark功能的主要入口点。 SparkContext表示与Spark集群的连接,可用于在该集群上创建RDD,累加器和广播变量。 DataFrame是组织为命名列的分布式数据集合。您可以在此处查看文档:{​​{3}}。

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

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