学以致用

古之成大事者,不惟有超士之才,亦唯有坚韧不拔之志

Python连接Hive做可视化分析

数据分析是产品经理的一个必不可少的技能,当然也取决于如何分析,分析到什么程度。数据的重要性直接关系到产品的走向,进而也出现了数据产品经理的岗位,专职做数据一类的产品工作。
在刚入行的时候就已经简单的自学过pyhon和数据可视化的一些知识,在工作中没有特别的使用到,最多是用tableau或者sql做一些基础的查询。恰巧最近工作项目的变化,除了本身的功能之外,也多了一份数据的工作。本文简单介绍下如何使用python分析数据,并将其可视化。
用得到的东西:
  1. Python3(这里我用的是版本3)
  2. Hive(由于数据量较大,公司采用Hive进行数据存储)
  3. PyEcharts(用的1.0以上版本,具体版本号忘记了 )
  4. Sql(服务端数据存储于云端,目前使用mysql)
  5. pandas(用于处理数据)
好了,现在开始进入操作流程,具体操作,就不啰嗦分析的目的和背景了。
第一步:
我们需要明确查询的数据,由于隐私问题,我暂且叫功能使用量A,功能转化量B,其中A存储在Hive中,B存储在mysql。
第二步
取出数据并做基本的处理。
  • 获取Hive数据库中的A
Python连接Hive数据库,有两种方式,一种是用pyhive,还是有一种是impala,这里作者选用的是impala。Python安装impala的时候,如果直接使用pip3 install 会出现一个问题,报错,小白基本是看的不太懂了,问了大神后,原来有些库是需要使用sudo权限的。即使用
sudo pip3 install impyla
进行安装。安装完成之后,我们进行数据库连接和数据读取:
# 数据库连接
conn = connect(host='', port=, database='', auth_mechanism='PLAIN',
user='', password='')
# 写一个数据查询的sql,省略了一部分
sql = ‘select dates,count(*) as num1 ....’
#读取数据并且转化为dataframe,这里使用pandas读取数据
df=pd.read_sql(sql,conn)
df=pd.DataFrame(df)
# 提取两个数值(这里我要的是日期和每一天对应的数值)
x_list = data1['dates'].tolist()
y_list = data1['num1'].tolist()
  • 上边提取了Hive中的数据,同样我们还需要提取转化数据: 用到pymysql,直接安装就可以
#连接数据库(注意参数的不同)
conn1 = pymysql.connect(host='', port=,user='',password='',database='',charset='utf8')
#写一个sql
sql1=‘’
# 读取数据,同样转化为字典,使用pandas读取数据库数据
data=pd.read_sql(sqls,conn)
data =pd.DataFrame(df)
但是这里出现了问题,date用的是‘2019-09-09 00:00’的方式,但是我们需要‘2019-09-09’的形式,所以需要
#处理日期
data['dates']=df['dates'].dt.date
#统计数据
data['count'] = df.groupby('dates').transform('count')
data.drop_duplicates(subset=['dates'],keep='first',inplace=True)
#提取数据
x=data['dates'].tolist()
y=data['count'].tolist()
第三步:
数据可视化,我们用pyecharts,经常提到的是matplotlib,但是可能是笔者技艺不精,觉得还是pyecharts生成的图表好看。
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))
.add_xaxis(x)
.add_yaxis('拍照', y_list)
.add_yaxis('扫码', y)
.set_global_opts(title_opts=opts.TitleOpts(title="朝阳大悦城4台"))
)
# 输出
make_snapshot(snapshot, bar.render('html/scan.html'), 'pictures/scan.png')
Image.open('pictures/scan.png').show()
这里我直接让他生成了图片并且自动打开。pyechats的教程可以直接百度哦。
接下来就是下边的样子了。
《Python连接Hive做可视化分析》

至此,大工搞成,接下来就是根据数据做出功能走向判断了。总结一下,上边的基本步骤:

  1. 获取数据
  2. 处理数据
  3. 数据可视化

这是基本的操作流,在每一步骤里边,也会遇到一些小问题,一般百度或者google都能解决。


作者:Leif

产品经理,目前在水深火热的人工智能产业中做AI产品经理。

微信公众号:匆匆闲暇

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注