Spark-ML-01-小试spark分析离线商品信息

来源:互联网 发布:矩阵奇异值分解 matlab 编辑:程序博客网 时间:2024/05/26 19:16

任务

一个在线商品购买记录数据集,约40M,格式如下:

Jack,iphone cover,9,99Jack,iphone cover,9,99Jack,iphone cover,9,99Jack,iphone cover,9,99

完成统计
1.购买总次数
2.客户总个数
3.总收入
4.最畅销的商品

代码

import java.util.Collections;import java.util.Comparator;import java.util.List;import org.apache.commons.collections.comparators.ComparableComparator;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.api.java.function.DoubleFunction;import org.apache.spark.api.java.function.Function;import org.apache.spark.api.java.function.Function2;import org.apache.spark.api.java.function.PairFunction;import scala.Tuple2;/** *  * @author jinhang * */public class JavaApp {    public static void main(String[] args) {        SparkConf sparkConf = new SparkConf().setAppName("ShopInfoAnalysis").setMaster("local[*]");        JavaSparkContext sc = new JavaSparkContext(sparkConf);        JavaRDD<String[]> data = sc.textFile("data/UserPurchaseHistory.csv").map(s -> s.split(","));        /**         * 统计         */        long numPurchases = data.count();        long uniqueUsers = data.map(s->s[0]).distinct().count();        double totalRevenue = data.mapToDouble(s -> Double.parseDouble(s[2])).sum();        JavaPairRDD<String, Integer> product = data.mapToPair(s->new Tuple2(s[1],1));        List<Tuple2<String, Integer>> pairs= product.reduceByKey((x,y)->(x+y)).sortByKey().collect();        System.out.println(pairs);        String mostPopular = pairs.get(pairs.size()-1)._1();        int purchases = pairs.get(0)._2();        System.out.println("Total purchases: " + numPurchases);        System.out.println("Unique users: " + uniqueUsers);        System.out.println("Total revenue: " + totalRevenue);        System.out.println(String.format("Most popular product: %s with %d purchases",                mostPopular, purchases));        sc.stop();    }}

简单的RDD转换和执行就可以简单解决大数据的问题,java实现的代码方便和以前的hadoop代码结合执行。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 火车坐过站了怎么办 被黄牛骗了300怎么办 断奶后乳房有硬块怎么办 断奶了有硬块疼怎么办 断奶时乳房有硬块怎么办 憋奶乳房有硬块怎么办 回奶以后有硬块怎么办 回奶里面有肿块怎么办 回奶时候的硬块怎么办 回奶乳房有硬块怎么办 回奶胀痛有硬块怎么办 回奶期间有硬块怎么办 回奶期间乳房有硬块怎么办 回奶乳房有肿块怎么办 牛犊子出生3天喘怎么办 猪高烧不退不吃怎么办 苹果6刷机失败怎么办 uc能看不能下怎么办 苹果6s铃声太小怎么办 苹果6铃声声音小怎么办 苹果7来电铃声小怎么办 红米手机声音小怎么办 微信安装不上去怎么办 6s无法安装微信怎么办 苹果4微信版本低怎么办 新手机没有微信怎么办 新手机登陆微信怎么办 新号码被注册过怎么办 微信注册不了怎么办啊 苹果4铃声不响怎么办 苹果6黑屏没反应怎么办 苹果7卡机黑屏了怎么办 苹果7手机铃声小怎么办 支付宝发现套现怎么办 空调滴水管断了怎么办 地漏下水管断了怎么办 脸上长白色糠疹怎么办 腋下长白色的毛怎么办 饥荒电羊死光了怎么办 6s储存空间虚满怎么办 大胸下垂穿婚纱怎么办