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
- Spark-ML-01-小试spark分析离线商品信息
- Spark-ML-01-小试spark分析离线商品信息
- Spark-ML-01-小试spark分析离线商品信息
- spark ml
- spark ml 学习资料
- Spark ML Pipelines实例
- spark ML 使用Word2Vec
- 1. spark ML概述
- Spark ML函数VectorAssembler
- spark ml pipelines
- spark.ml.param.shared
- Spark ML 2.1 --Pipelines
- Spark ML随机森林
- Spark的Ml pipeline
- Flume+Spark+Hive+Spark SQL离线分析系统
- Flume+Spark+Hive+Spark SQL离线分析系统
- Flume+Spark+Hive+Spark SQL离线分析系统
- Flume+Spark+Hive+Spark SQL离线分析系统
- yii2缓存的介绍和使用
- Spark Sql,Dataframe和数据集指南
- 你真的会二分查找吗?
- 13_JSP HTTP 状态码
- GPU memory 结构
- Spark-ML-01-小试spark分析离线商品信息
- APP开发实战7-APP的尺寸标注工作
- Spring实例化Bean的三种方式及Bean的类型(activiti实战)
- uva 361 - Cops and Robbers(凸包)
- 剑指offer之面试题11数值的整数次方
- 15_JSP 过滤器
- js检测输入的是否全部为数字
- COM开发-IDispatch
- Android中的Activity