实验思路:
- 在Linux上,创建/data/sparkshell目录,用于存储实验所需的数据。
- 切换目录到/data/sparkshell下,并从指定网址下载buyer_favorite文件。
- 使用jps查看Hadoop以及Spark的相关进程是否已经启动,若未启动则执行启动命令。
- 将Linux本地/data/sparkshell/buyer_favorite文件,上传到HDFS上的/mysparkshell目录下。
- 启动spark-shell
- 加载数据,创建RDD
- 对RDD进行统计,并将结果输出至hdfs上的/mysparkshell中。
- 将hdfs中的结果文件导入到本地/data/ans20/ans20_ans1.txt文件中
SparkSQL,创建表,查询数据
任务内容
某电商平台,需要对订单数据进行分析,已知订单数据包括两个文件,分别为订单数据orders和订单明细数据order_items,orders记录了用户购买商品的订单ID,订单号,用户ID及下单日期。order_items记录了商品ID,订单ID以及明细ID。它们的结构与关系如下图所示:
orders表:(order_id,order_number,buyer_id,create_dt)
- 订单ID 订单号 用户ID 下单日期
- 52304 111215052630 176474 2011-12-15 04:58:21
- 52303 111215052629 178350 2011-12-15 04:45:31
- 52302 111215052628 172296 2011-12-15 03:12:23
- 52301 111215052627 178348 2011-12-15 02:37:32
- 52300 111215052626 174893 2011-12-15 02:18:56
- 52299 111215052625 169471 2011-12-15 01:33:46
- 52298 111215052624 178345 2011-12-15 01:04:41
- 52297 111215052623 176369 2011-12-15 01:02:20
- 52296 111215052622 178343 2011-12-15 00:38:02
- 52295 111215052621 178342 2011-12-15 00:18:43
order_items表:(item_id,order_id,goods_id )
- 明细ID 订单ID 商品ID
- 252578 52293 1016840
- 252579 52293 1014040
- 252580 52294 1014200
- 252581 52294 1001012
- 252582 52294 1022245
- 252583 52294 1014724
- 252584 52294 1010731
- 252586 52295 1023399
- 252587 52295 1016840
- 252592 52296 1021134
- 252593 52296 1021133
- 252585 52295 1021840
- 252588 52295 1014040
- 252589 52296 1014040
- 252590 52296 1019043
创建orders表和order_items表,并统计该电商网站都有哪些用户购买了什么商品。
任务步骤
1.首先检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。
- jps
- cd /apps/hadoop/sbin
- ./start-all.sh
2.在Linux本地新建/data/spark5目录。
- mkdir -p /data/spark5
3.切换到/data/spark5目录下,使用wget命令,下载http://192.168.1.100:60000/allfiles/spark5中的orders和order_items。
- cd /data/spark5
- wget http://192.168.1.100:60000/allfiles/spark5/orders
- wget http://192.168.1.100:60000/allfiles/spark5/order_items
4.首先,在HDFS上新建/my