jav*_*dba 14 scala dataset apache-spark apache-spark-dataset
我RDD[LabeledPoint]打算在机器学习管道中使用.我们如何将其转换RDD为DataSet?请注意,较新的 spark.mlapis需要Dataset格式的输入.
jav*_*dba 18
这是一个跨越额外步骤的答案 - DataFrame.我们使用SQLContext创建一个DataFrame然后DataSet使用所需的对象类型创建一个- 在这种情况下LabeledPoint:
val sqlContext = new SQLContext(sc)
val pointsTrainDf = sqlContext.createDataFrame(training)
val pointsTrainDs = pointsTrainDf.as[LabeledPoint]
Run Code Online (Sandbox Code Playgroud)
更新有 没有听说过SparkSession?(直到现在我都没...)
显然,它SparkSession是Spark 2.0.0中的Preferred Way(TM)并向前发展.以下是新(火花)世界顺序的更新代码:
Spark 2.0.0+方法
注意在以下两种方法中(更简单的一种方法是@ zero323),与SQLContext方法相比,我们已经完成了重要的节省:不再需要首先创建一个DataFrame.
val sparkSession = SparkSession.builder().getOrCreate()
val pointsTrainDf = sparkSession.createDataset(training)
val model = new LogisticRegression()
.train(pointsTrainDs.as[LabeledPoint])
Run Code Online (Sandbox Code Playgroud)
Spark 2.0.0+的第二种方式是 @ zero323
val spark: org.apache.spark.sql.SparkSession = ???
import spark.implicits._
val trainDs = training.toDS()
Run Code Online (Sandbox Code Playgroud)
传统的Spark 1.X和更早的方法
val sqlContext = new SQLContext(sc) // Note this is *deprecated* in 2.0.0
import sqlContext.implicits._
val training = splits(0).cache()
val test = splits(1)
val trainDs = training**.toDS()**
Run Code Online (Sandbox Code Playgroud)
另请参阅:如何在Dataset中存储自定义对象?受到尊敬的@ zero323.
| 归档时间: |
|
| 查看次数: |
20963 次 |
| 最近记录: |