Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析
2017-05-20 09:27
1141 查看
Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析
package com.dt.spark.cores import org.apache.spark.{SparkConf, SparkContext} object Movie_Users_Analyzer { def main (args:Array[String]): Unit ={ var masterUrl="local[4]" var dataPath="data/movielens/medium/" if(args.length>0){ masterUrl=args(0) }else if (args.length>1) { dataPath =args(1) } val sc =new SparkContext(new SparkConf().setMaster(masterUrl).setAppName("Movie_Users_Analyzer")) val usersRDD =sc.textFile(dataPath+"users.dat") val moviessRDD =sc.textFile(dataPath+"movies.dat") val occupationsRDD =sc.textFile(dataPath+"occupation.dat") val ratingsRDD =sc.textFile(dataPath+"ratings.dat") val usersBasic =usersRDD.map(_.split("::")).map{user => ( user(3), (user(0),user(1),user(2)) )} val occupations =occupationsRDD.map(_.split("::")).map(job =>(job(0),job(1))) val userInformation=usersBasic.join(occupations) userInformation.cache() for (elem <- userInformation.collect()){ println(elem) } val targetMoive=ratingsRDD.map(_.split("::")).map(x=>(x(0),x(1))).filter(_._2.equals("1193")) val targetUsers =userInformation.map(x=>(x._2._1._1,x._2)) val userInformationForSpecificMovie =targetMoive.join(targetUsers) for (elem <- userInformationForSpecificMovie.collect()){ println(elem) } //users.dat UserID::Gender::Age::Occupation::Zip-code //ratings.dat UserID::MovieID::Rating::Timestamp //Occupation 6: "doctor/health care" // movies.dat MovieID::Title::Genres val ratings=ratingsRDD.map(_.split("::")).map(x=>(x(0),x(1),x(2))).cache() ratings.map(x=>(x._2,(x._3.toInt,1))) .reduceByKey((x,y)=>(x._1+y._1,x._2+y._2)) // 总分,总人数 .map(x => (x._2._1.toDouble / x._2._2 , x._1)) .sortByKey(false) .take(10) .foreach(println) //观看人数最多的电影 //ratings.dat UserID::MovieID::Rating::Timestamp ratings.map(x => (x._1,1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false) .take(10).foreach(print) } }
相关文章推荐
- Spark商业案例与性能调优实战100课》第2课:商业案例之通过RDD实现分析大数据电影点评系统中电影流行度分析
- 《Spark商业案例与性能调优实战100课》第1课:商业案例之通过RDD实现分析大数据电影点评系统中电影的用户行为信息
- Spark商业案例与性能调优实战100课》第3课:商业案例之通过RDD分析大数据电影点评系各种类型的最喜爱电影TopN及性能优化技巧
- 《Spark商业案例与性能调优实战100课》第6课:商业案例之通过Spark SQL实现大数据电影用户行为分析
- Spark商业案例与性能调优实战100课》第11课:商业案例之通过纯粹通过DataFrame分析大数据电影点评系仿QQ和微信、淘宝等用户群分析与实战
- 《Spark商业案例与性能调优实战100课》第13课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段段访问次数TopN
- 《Spark商业案例与性能调优实战100课》第9课:商业案例之通过Spark SQL 下两种不同方式实现口碑最佳和最热门电影比较
- 《Spark商业案例与性能调优实战100课》第15课:商业案例之纯粹通过DataSet进行电商交互式分析系统中各种类型TopN分析实战详解
- 《Spark商业案例与性能调优实战100课》第14课:商业案例之纯粹通过DataSet进行电商交互式分析系统中特定时段购买金额Top10 和访问次数增长Top10
- Spark商业案例与性能调优实战100课》第16课:商业案例之NBA篮球运动员大数据分析系统架构和实现思路
- Spark商业案例与性能调优实战100课》第20课:大数据性能调优的本质和Spark性能调优要点分析
- <<《Spark商业案例与性能调优实战100课》第17课:商业案例之NBA篮球运动员大数据分析系统代码实战
- 《Spark商业案例与性能调优实战100课》第19课:商业案例之NBA篮球运动员大数据分析核心业务逻辑代码实战
- 《Spark商业案例与性能调优实战100课》第21课:Spark性能调优之系统资源使用原理和调优最佳实践
- 《Spark商业案例与性能调优实战100课》第35课:彻底解密Spark 2.1.X中Sort Shuffle中TimSort排序源码具体实现
- 《Spark商业案例与性能调优实战100课》第28课:彻底解密Spark Sort-Based Shuffle排序具体实现内幕和源码详解
- 《Spark商业案例与性能调优实战100课》第18课:商业案例之NBA篮球运动员大数据分析代码实战之核心基础数据项编写
- 《Spark商业案例与性能调优实战100课》第29课:彻底解密Spark 1.6.X以前Shuffle中JVM内存使用内幕及配置最佳实践
- Spark商业案例与性能调优实战100课》第26课:电光石火间从根本上理解Spark中Sort-Based Shuffle产生的内幕及其tungsten-sort 背景解密
- 《Spark商业案例与性能调优实战100课》第27课:彻底解密Spark Shuffle令人费解的6大经典问题