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

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 掌握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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值