python程序访问hive仓库,并将读取的数据写入文本

25 篇文章 0 订阅
14 篇文章 0 订阅

实验环境

centos 7; pyspark 2.4.3;

在访问Hive数据仓库之前,需要我们配置hadoop中一些组件,使得我们可以顺利 访问hdfs,hive(可以通过hadoop -h , hive进行测试是否配置成功)。其实hive只是用作数据查询,类似于sql语句,利用hive查询数据时需要借助hadoop中的核心组件MapReduce和Hdfs,它使用MapReduce中的map和reduce方法进行数据处理,而查询的数据来自于hdfs。

hadoop 中涉及到许多组件,东西蛮多的,我最近也在学习这一块。本来是想边学边整理写个系统性博客教程,后来发现已经有了一个比较完善的学习教程了。这里推荐给学习大数据的同学,厦门大学数据库实验室。在慕课网课网易课堂有相关视频,而且还是免费的,老师讲的都是一些基础性东西,很容易懂。

相关代码及解释

为了便于理解,先截张图看下集群上数据的存储格式:
在这里插入图片描述

下面的程序如上图所示,设定起始时间,终止时间,利用时间戳来筛选数据。

from pyspark.sql import HiveContext
from pyspark import SparkContext
sc = SparkContext(appName='readHiveDns')
hive_context = HiveContext(sc)
# return start_time and end_time from front
start_time = 1560676040
end_time = 1560676049
hive_context.sql('use xidian')
sql_hive = " SELECT dns_qry_name as dns FROM dns " \
             "WHERE {0} <= unix_tstamp and unix_tstamp <= {1} " \
             "LIMIT 100".format(start_time, end_time)
readDns = hive_context.sql(sql_hive)
# 将筛选的数据转换为list格式,下面这一步将会从hdfs中拿去数据进行转换
rows = readDns.collect()
saveFilePath = '/usr/readHive1.txt'
f = open(saveFilePath, 'w')
for row in rows:
    f.write(row[0] + '\n')
f.close()

通过上面的程序,便可以将从hive里读取的数据存储在本地的文本中。打开终端,输入下面命令查看:

[root@web ~]# cat /usr/readHive1.txt
cn.unionpay.com.wscdns.com
tools.3g.qq.com
is1-ssl.mzstatic.com
sc.xidian.edu.cn
zhizi.qq.com

data.bilibili.com
WWW.JD.COM
www.jd.com
login.live.com
www.sina.com.cn
thepiratebay.org
www.taobao.com
p.qlogo.cn
cpro.baidustatic.com
annalect.com.cn

欢迎关注我的微信公众号,谈风月之余谈技术
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值