meituan_waimai_meishi.csv 美团外卖平台字段数据分析

本文介绍如何使用Spark进行大数据分析,包括统计店铺商品数量、销售额及热门商品等,并展示了如何利用HBase、Hive进行数据存储与处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[root@gree139 ~]# start-all.sh

[root@gree139 ~]# zkServer.sh start

[root@gree139 ~]# zkServer.sh status

[root@gree139 ~]# hive

[root@gree139 ~]# hbase shell

[root@gree139 ~]# spark-shell

[root@gree139 ~]# cd /opt/exam/

[root@gree139 exam]# ls

meituan_waimai_meishi.csv

[root@gree139 exam]# hdfs dfs -ls /

1.请在 HDFS 中创建目录/app/data/exam,并将 meituan_waimai_meishi.csv 文件传到该

目录。并通过 HDFS 命令查询出文档有多少行数据。

[root@gree139 exam]# hdfs dfs -mkdir -p /app/data/exam

[root@gree139 exam]# hdfs dfs -put ./meituan_waimai_meishi.csv /app/data/exam

[root@gree139 exam]# hdfs dfs -cat /app/data/exam/meituan_waimai_meishi.csv | wc -l

2.使用 Spark,加载 HDFS 文件系统 meituan_waimai_meishi.csv 文件,并分别使用 RDD

和 Spark SQL 完成以下分析(不用考虑数据去重)

// 默认路径是HDFS上的路径

scala> val fileRdd = sc.textFile("/app/data/exam/meituan_waimai_meishi.csv")

scala> fileRdd.collect.foreach(println)

①统计每个店铺分别有多少商品(SPU)。

scala> fileRdd.filter(x=>x.startsWith("spu_id")==false).map(x=>x.split(",",-1)).filter(x=>x.size==12).count

res1: Long = 982

scala> val spuRDD = fileRdd.filter(x=>x.startsWith("spu_id")==false).map(x=>x.split(",",-1)).filter(x=>x.size==12)

scala> spuRDD.collect.foreach(x=>println(x.toList))

scala> spuRDD.map(x=>(x(2),1)).reduceByKey(_+_).collect.foreach(println)

x.split(",") x.split(",",-1)区别

scala> sc.parallelize(List("a,b","a,b,c,","a,b,,,"))

res6: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[11] at parallelize at <console>:25

scala> res6.map(x=>x.split(",")).foreach(x=>println(x.toList))

List(a, b)

List(a, b, c)

List(a, b)

scala> res6.map(x=>x.split(",",-1)).foreach(x=>println(x.toList))

List(a, b, , , )

List(a, b, c, )

List(a, b)

②统计每个店铺的总销售额。

scala> spuRDD.map(x=>(x(2),(x(5).toDouble*x(7).toInt))).reduceByKey(_+_).foreach(println)

scala> import scala.util._

import scala.util._

scala>spuRDD.map(x=>(x(2),(Try(x(5).toDouble).toOption.getOrElse(0.0)* Try(x(7).toInt).toOption.getOrElse(0)))).reduceByKey(_+_).foreach(println)

在Python中进行美团外卖数据分析和实现通常包括数据清洗、数据探索、数据处理和可视化等步骤。由于这是一个复杂的过程,并且涉及到具体的API请求(需要美团外卖开放平台的API权限)、数据结构选择以及可能的敏感信息处理,下面是一个简化的示例,展示了如何获取和初步分析外卖订单数据的大致框架: ```python # 导入必要的库 import requests import pandas as pd from bs4 import BeautifulSoup import matplotlib.pyplot as plt # 定义函数用于获取HTML数据 def get_html(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') return soup # 使用API获取数据,这里假设有一个模拟的API接口 def get_meituan_data(api_key): # 实际上你需要替换为真实的美团外卖API url = f'https://api.meituan.com/restaurants/{api_key}' data = get_html(url).json() # 假设返回的是JSON格式 return data['orders'] # 获取并解析数据 data = get_meituan_data('your_api_key') orders_df = pd.DataFrame(data) # 数据清洗 orders_df = orders_df.dropna() # 删除缺失值 orders_df = orders_df[['order_id', 'price', 'time']] # 只保留所需列 # 数据探索 print(orders_df.describe()) # 描述性统计 grouped_orders = orders_df.groupby('day').size() plt.bar(grouped_orders.index, grouped_orders.values) # 按天数分组的订单量 # 更深入的分析可以根据实际需求编写,比如用户偏好分析、热门商品等 #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值