大数据课程K14——Spark的数据挖掘案例

文章作者邮箱:[email protected]              地址:广东惠州

 ▲ 本章节目的

⚪ 掌握Spark的案例——预测商品需求量;

⚪ 掌握Spark的案例——预测谋杀率;

一、案例1——预测商品需求量

1. 说明

某种商品的需求量(y,吨)、价格(x1,元/千克)和消费者收入(x2,元)观测值如下表所示。

y=β1X1+β2X2+β

y

x1

x2  

100

5

1000

75

7

600

80

6

1200

70

6

500

50

8

30

65

7

400

90

5

1300

100

4

1100

110

3

1300

60

9

300

为了能够通过Mllib建模,我们首先需要对数据格式进行一定的处理,比如如下所示:

100|5  1000

75|7  600

80|6  1200

70|6  500

50|8  30

65|7  400

90|5  1300

100|4  1100

110|3  1300

60|9  300

X1=10 X2=400 Y=?

2. 代码示例:

import org.apache.spark.SparkConf

import org.apache.spark.SparkContext

import org.apache.spark.mllib.regression.LabeledPoint

import org.apache.spark.mllib.linalg.Vectors

import org.apache.spark.ml.regression.LinearRegressionModel.LinearRegressionModelReader

import org.apache.spark.ml.regression.LinearRegressionSummary

import org.apache.spark.ml.regression.LinearRegressionTrainingSummary

import org.apache.spark.mllib.regression.LinearRegressionWithSGD

import org.apache.spark.mllib.regression.LinearRegressionModel

import org.apache.spark.ml.regression.LinearRegressionModel

import org.apache.spark.sql.SQLContext

import org.apache.spark.ml.feature.VectorAssembler

import org.apache.spark.ml.regression.LinearRegression

object Driver { 

  def main(args: Array[String]): Unit = {   

     val conf=new SparkConf().setMaster("local").setAppName("lr")    

     val sc=new SparkContext(conf)    

     val sqc=new SQLContext(sc)    

     val data=sc.textFile("d://ml/lritem.txt")    

     //--将数据转成 tuple格式,是为了后期转成SparkSql的DataFrame

     val parseData=data.map { x =>

       val parts=x.split("\\|")

       val features=parts(1).split(" ")

       (parts(0).toDouble,features(0).toDouble,features(1).toDouble)

     }    

     //--转成DF

     val df=sqc.createDataFrame(parseData)    

     //--定义各列字段名字

     val dfData=df.toDF("Y","X1","X2")

     //--定义featur

你可能感兴趣的:(大数据,spark,分布式)