博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark-ML-01-小试spark分析离线商品信息
阅读量:6813 次
发布时间:2019-06-26

本文共 2028 字,大约阅读时间需要 6 分钟。

任务

一个在线商品购买记录数据集,约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
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
product = data.mapToPair(s->new Tuple2(s[1],1)); List
> 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代码结合执行。

转载地址:http://nnkzl.baihongyu.com/

你可能感兴趣的文章
《maven实战》学习笔记7——maven项目版本管理和灵活构建
查看>>
嵌入式 linux 查看内存
查看>>
mysql 协议的server状态标识
查看>>
CSDN去广告小脚本
查看>>
辟谣!Java 9使用指南10大误解,你中了几条?
查看>>
KSQL,用于Apache Kafka的流数据SQL引擎
查看>>
Zeppelin对Spark进行交互式数据查询和分析
查看>>
漂亮的后台界面PSD下载
查看>>
REST_FRAMEWORK加深记忆-第二次练习官方文档2
查看>>
NGINX配置小随笔
查看>>
大数据能帮企业抓住网络入侵者吗?
查看>>
BoCloud博云完成近亿元融资,加速PaaS与云运维落地
查看>>
IEEE:全球超一半大公司正在研究区块链,但是你需要区块链吗?
查看>>
与线性代数相关的数学词汇
查看>>
托管统一通信 向“云计算”迁移
查看>>
[译] 理解 NodeJS 中基于事件驱动的架构
查看>>
新计算,新纪元——2017 Kubertenes Meetup 即将开幕!
查看>>
【操作系统】3、存储管理
查看>>
咪咕视讯王斌:5G时代的泛娱乐产业生长
查看>>
VC中的正则表达式使用
查看>>