赞
踩
一、环境要求
Hadoop+Hive+Spark+HBase 开发环境。
start-all.sh
start-hbase.sh
nohup hive --service metastore &
hive
cd .../spark
sbin/start-all.sh
二、提交结果要求
1.必须提交源码或对应分析语句,如不提交则不得分。
2.带有分析结果的功能,请分析结果的截图与代码一同提交。
三、数据描述
meituan_waimai_meishi.csv 是美团外卖平台的部分外卖 SPU(Standard Product Unit ,
标准产品单元)数据,包含了外卖平台某地区一时间的外卖信息。具体字段说明如下:
四、功能要求
1.数据准备(10 分)
请在 HDFS 中创建目录/app/data/exam,并将 meituan_waimai_meishi.csv 文件传到该
目录。并通过 HDFS 命令查询出文档有多少行数据。
hdfs dfs -mkdir -p /app/data/exam
hdfs dfs -put meituan_waimai_meishi.csv /app/data/exam
hdfs dfs -cat /app/data/exam/meituan_waimai_meishi.csv | wc -l
2.使用 Spark,加载 HDFS 文件系统 meituan_waimai_meishi.csv 文件,并分别使用 RDD
和 Spark SQL 完成以下分析(不用考虑数据去重)。(50 分)
①统计每个店铺分别有多少商品(SPU)。
②统计每个店铺的总销售额。
③统计每个店铺销售额最高的前三个商品,输出内容包括店铺名,商品名和销售额,其
中销售额为 0 的商品不进行统计计算,例如:如果某个店铺销售为 0,则不进行统计。
#RDD方法:
val fileRDD = sc.textFile("hdfs://hadoop155:9000/app/data/exam/meituan_waimai_meishi.csv")
val spuRDD = fileRDD.filter(x=>x.startsWith("spu_id")==fasle).map(x=>x.split(",",-1)).filter(x=>x.size==12)
spuRDD.count()
spuRDD.map(x=>(x(2),1)).reduceByKey(_+_).collect.foreach(println)
import scala.util._
spuRDD.map(x=>(x(2),Try(x(5).toDouble).toOption.getOrElse(0.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。