首页 > 编程知识 正文

python统计hive元数据,Python的数据

时间:2023-12-27 22:26:17 阅读:324052 作者:MIUJ

本文目录一览:

Python + Pandas + Matplotlib初探数据分析

大数据测试,说来进入这块领域也快2年半了。每天工作的内容是验证数据表的逻辑正确性。

最近偶有所思,数据测试能否更进一步?如何利用已有技能对海量数据进行全面分析,找出数据质量问题或协助数据分析师发现逻辑漏洞?

再或者,能否向数据分析师转型呢?想得很多,思绪有些杂乱。于是我冷静了下,不再空想。我先做点东西出来看看,再评估下自己是否有这个能力和资质。

花了1个星期的时间,学习了 Python 的 Pandas 模块,按照学习示例一边学习一边实操,慢慢地感觉就来了。对 Pandas 有了基本的认知后,我在寻找一个突破点,我想我不能一直只是这样按照示例代码敲下去,毫无意义。

我得将所学的 Pandas 知识结合公司现有的业务进行运用。刚开始至少能简单地开始对某张数据表的某个指标进行数据分析。于是我按照这样的想法对 test. test_resv001_room_daily_df 表的 number_of_room_nights 指标开始了数据分析的 探索 。

1、hivesql数据准备

hivesql内容说明:

从上面的 hivesql 语句可以看出,这条 sql 的目的是查询出 hotel_code_new 为 'CNSZV002','CWH','CWSW','ESL','FIJ' 在2019年各个月份的 number_of_room_nights 指标总和,按照 hotel_code_new 和月份作分组和排序。

2、代码实现

3、hive数据库all_data的数据结构查询结果

4、代码实现2中的print(df)输出结果

手工校对通过,与 hivesql 输出结果一致。

5、将dataframe数据结构的df数据使用plot生成趋势图

调用df.plot()不带任何参数的趋势图如下:

上述折线图表示:当前月份值及 历史 月份值的累加和。

调用df.plot(kind='bar')时加上参数kind='bar'的趋势图如下:

上述柱状图表示:当前月份值及 历史 月份值的累加和。

两个图只是展示形式上的区别,都能在一定程度上体现2019年12个月份每个不同 hotel_code_new 当前月份与 历史 月份 number_of_room_nights 值的累加和的数据分布情况,可以说是一个简单的数据分析。

6、将dataframe数据写入csv文件

room_nts.csv内容如下:

7、读取csv文件中dataframe数据

8、将dataframe多维数据存储到excel中

room_nts.xlsx文件中sheet_name为room_nts的内容如下:

9、从excel中读取dataframe多维数据

小结

今天分享的数据分析内容比较基础,主要是将学到的技能与业务相结合的初步 探索 ,后续还需要不断 探索 与学习,将学习到的技能加以思考并运用到实际项目业务中,如此方能走得更远。

windows下怎么用python连接hive数据库

由于版本的不同,Python 连接 Hive 的方式也就不一样。

在网上搜索关键字 python hive 的时候可以找到一些解决方案。大部分是这样的,首先把hive 根目录下的$HIVE_HOME/lib/py拷贝到 python 的库中,也就是 site-package 中,或者干脆把新写的 python 代码和拷贝的 py 库放在同一个目录下,然后用这个目录下提供的 thrift 接口调用。示例也是非常简单的。类似这样:

import sys

from hive_service import ThriftHive

from hive_service.ttypes import HiveServerException

from thrift import Thrift

from thrift.transport import TSocket

from thrift.transport import TTransport

from thrift.protocol import TBinaryProtocol

def hiveExe(sql):

try:

transport = TSocket.TSocket('127.0.0.1', 10000)

transport = TTransport.TBufferedTransport(transport)

protocol = TBinaryProtocol.TBinaryProtocol(transport)

client = ThriftHive.Client(protocol)

transport.open()

client.execute(sql)

print "The return value is : "

print client.fetchAll()

print "............"

transport.close()

except Thrift.TException, tx:

print '%s' % (tx.message)

python怎么读取hive元数据,执行大sql

#!/usr/bin/env pythonimport syssys.path.append('/usr/local/hive-0.10.0/lib/py')from hive_service import ThriftHivefrom hive_service.ttypes import HiveServerExceptionfrom thrift import Thriftfrom thrift.transport import TSocketf...

Hive是什么?

此外,hive也支持熟悉map-reduce的开发者使用map-reduce程序对数据做更加复杂的分析。hive可以很好的结合thrift和控制分隔符,也支持用户自定义分隔符。hive基于hadoop,hadoop是批处理系统,不能保存低延迟,因此,hive的查询也不能保证低延迟。hive的工作模式是:提交一个任务,等到任务结束时被通知,而不是实时查询。相对应的是,类似于Oracle这样的系统当运行于小数据集的时候,响应非常快,可当处理的数据集非常大的时候,可能需要数小时。需要说明的是,hive即使在很小的数据集上运行,也可能需要数分钟才能完成。低延迟不是hive追求的首要目标。

python如何增量读取hive数据,每次执行脚本把上次的结果做基准,打印出新增的部分?

1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾的文件)list0与list1分别为文档中的第一列数据与第二列数据。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。