【发布时间】:2015-09-23 04:14:05
【问题描述】:
我是 Spark、大数据和 Scala 的初学者,我正在尝试使用示例数据集在 Spark 中构建预测模型。我想使用 pySpark,但目前用于 pyspark 的 mllib 有限制,因为它不能保存和加载。我有几个问题:
-
我的数据是 csv 格式,如下所示:
Buy,Income,Is Female,Is Married,Has College,Is Professional,Is Retired,Unemployed,Residence Length,Dual Income,Minors,Own,House,White,English,Prev Child Mag,Prev Parent Mag 0,24000,1,0,1,1,0,0,26,0,0,0,1,0,0,0,0 1,75000,1,1,1,1,0,0,15,1,0,1,1,1,1,1,0
基本上,这些数据有助于根据所有给定参数预测用户是否购买这本杂志。
如何将这些数据转换为 Spark 易于解释的格式? (我在这里查看了关于将 csv 转换为 RDD 的其他相关答案并尝试过,但它让我比以前更加困惑)
-
如果我只是对这些数据运行 mllib 文档中给出的逻辑回归程序,其中一部分数据用于训练,另一部分用于测试,我如何将其转换为我有新用户的可演示格式程序会引导我了解所有参数,最后会给我一个“是”或“否”来判断这个新人是否会购买这本杂志。
import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.regression.LinearRegressionModel import org.apache.spark.mllib.regression.LinearRegressionWithSGD import org.apache.spark.mllib.linalg.Vectors // Load and parse the data val data = sc.textFile("data/mllib/ridge-data/lpsa.data") val parsedData = data.map { line => val parts = line.split(',') LabeledPoint(parts(0).toDouble, Vectors.dense(parts(1).split(' ').map(_.toDouble))) }.cache() // Building the model val numIterations = 100 val model = LinearRegressionWithSGD.train(parsedData, numIterations) // Evaluate model on training examples and compute training error val valuesAndPreds = parsedData.map { point => val prediction = model.predict(point.features) (point.label, prediction) } val MSE = valuesAndPreds.map{case(v, p) => math.pow((v - p), 2)}.mean() println("training Mean Squared Error = " + MSE) // Save and load model model.save(sc, "myModelPath") val sameModel = LinearRegressionModel.load(sc, "myModelPath")
如果我使用这个程序作为我的起点,基本上我该从哪里开始?
【问题讨论】:
-
@maasg 你能帮忙回答这个问题吗?我已经阅读了很多你的回复来引发相关问题,他们帮助了很多。谢谢!
-
这并不容易,但您必须通过将所有分类变量转换为新列来增加数据的维度
标签: scala csv apache-spark analytics regression