赞
踩
本篇紧接上一篇官方实例
http://blog.csdn.net/dahunbi/article/details/72821915
官方实例有个缺点,用于训练的数据直接就load进来了,不做任何处理,有些投机取巧。
// Load and parse the data file.
val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
实践中,我们的spark都是架构在hadoop系统上的,表都是存放在HDFS上,那么正常的提取方式是用hiveSQL,要调用HiveContext。
上一篇提到过,有两个machine learning的库,一个是ML,一个是MLlib
import java.io.{ObjectInputStream, ObjectOutputStream}
import org.apache.spark.ml.util.MLWritable
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FSDataInputStream, Path, FileSystem}
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.Row
import org.apache.spark.sql.hive.HiveContext
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.{RandomForestClassificationModel, RandomForestClassifier}
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.ml.feature.{IndexToString, StringIndexer, VectorIndexer}
val hc = new HiveContext(sc)
import hc.implicits._
// 调用HiveContext
// 取样本,样本的第一列为label(0或者1),其他列可能是姓名,手机号,以及真正要参与训练的特征columns
val data = hc.sql(s"""select * from database1.traindata_userprofile"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。