任务要求如下:
- 实现Spark和HIVE与HDFS之间的通信
- 利用Spark.sql从HIVE中获取数据,并进行预处理以符合Spark机器学习库中输入文件的libsvm格式
- LinearRegression线性回归模型建模
- 将得到的预测结果写回HDFS
现在明确了我们的任务目标,就从头开始进行。
配置Spark和Hive之间的通信
Spark内部可以直接让SparkContext从hdfs上获取数据(保证和集群具有相同的网络环境)。
//举例
//创建sparkConf对象,设置spark应用的配置信息
SparkConf conf = new SparkConf()
.setAppName("WordCount")
.setMaster("local"); //spark应用程序要连接的spark集群的master节点的url,local代表的是本地运行
//.setMaster("spark://ip:port");
//创建JavaSparkContext对象
JavaSparkContext sc = new JavaSparkContext(conf);
//针对输入源(hdfs文件、本地文件等)创建一个初始的RDD
JavaRDD<String> lines = sc.textFile("hfs://master:9000/wordcount.txt");
在Spark1.6开始之后增加了DataSet数据类型,我们注意到通过Spar