一、环境要求 Hadoop+Hive+Spark+HBase 开发环境。
三、数据描述 meituan_waimai_meishi.csv 是美团外卖平台的部分外卖 SPU(Standard Product Unit , 标准产品单元)数据,包含了外卖平台某地区一时间的外卖信息。具体字段说明如下:
四、功能要求
1.数据准备 请在 HDFS 中创建目录/app/data/exam,并将 meituan_waimai_meishi.csv 文件传到该 目录。并通过 HDFS 命令查询出文档有多少行数据。
2.使用 Spark,加载 HDFS 文件系统 meituan_waimai_meishi.csv 文件,并分别使用 RDD 和 Spark SQL 完成以下分析(不用考虑数据去重)
①统计每个店铺分别有多少商品(SPU)。
②统计每个店铺的总销售额。
③统计每个店铺销售额最高的前三个商品,输出内容包括店铺名,商品名和销售额,其 中销售额为 0 的商品不进行统计计算,例如:如果某个店铺销售为 0,则不进行统计。
目标一:.数据准备 请在 HDFS 中创建目录/app/data/exam,并将 meituan_waimai_meishi.csv 文件传到该 目录。并通过 HDFS 命令查询出文档有多少行数据。
创建一个exam文件夹用来存放表格
在hdfs创建目录,并将文件传入hdfs中
[root@gree2 exam]# hdfs dfs -mkdir -p /app/data/exam
[root@gree2 exam]# hdfs dfs -put ./meituan_waimai_meishi.csv /app/data/exam
查看文件有多少数据
[root@gree2 exam]# hdfs dfs -cat /app/data/exam/meituan_waimai_meishi.csv | wc -l
22/01/04 14:36:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
983
目标二:使用 Spark,加载 HDFS 文件系统 meituan_waimai_meishi.csv 文件,并分别使用 RDD 和 Spark SQL 完成以下分析(不用考虑数据去重)
这里在xshell和idea操作是一样的
scala> val fileRdd=sc.textFile("/app/data/exam/meituan_waimai_meishi.csv")
查看是否加载成功
①统计每个店铺分别有多少商品(SPU)。先了解split里面加-1的区别
x.split(",") 与 x.split(",",-1)区别在于不会省略逗号之间空白的空间,也会打印出来
scala> sc.parallelize(List("a,b","a,b,c,","a,b,,,