python读取hdfs并返回dataframe教程


Posted in Python onJune 05, 2020

不多说,直接上代码

from hdfs import Client
import pandas as pd
 
HDFSHOST = "http://xxx:50070"
FILENAME = "/tmp/preprocess/part-00000" #hdfs文件路径
COLUMNNAMES = [xx']
 
def readHDFS():
'''
读取hdfs文件
 
Returns:
df:dataframe hdfs数据
'''
client = Client(HDFSHOST)
# 目前读取hdfs文件采用方式:
# 1. 先从hdfs读取二进制数据流文件
# 2. 将二进制文件另存为.csv
# 3. 使用pandas读取csv文件
with client.read(FILENAME) as fs:
content = fs.read()
s = str(content, 'utf-8')
file = open("data/tmp/data.csv", "w")
file.write(s)
df = pd.read_csv("data/tmp/data.csv", names=COLUMNNAMES)
return df

补充知识:Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV

1. 目标

通过hadoop hive或spark等数据计算框架完成数据清洗后的数据在HDFS上

爬虫和机器学习在Python中容易实现

在Linux环境下编写Python没有pyCharm便利

需要建立Python与HDFS的读写通道

2. 实现

安装Python模块pyhdfs

版本:Python3.6, hadoop 2.9

读文件代码如下

from pyhdfs import HdfsClient
client=HdfsClient(hosts='ghym:50070')#hdfs地址
res=client.open('/sy.txt')#hdfs文件路径,根目录/
for r in res:
  line=str(r,encoding='utf8')#open后是二进制,str()转换为字符串并转码
  print(line)

写文件代码如下

from pyhdfs import HdfsClient
client=HdfsClient(hosts='ghym:50070',user_name='hadoop')#只有hadoop用户拥有写权限
str='hello world'
client.create('/py.txt',str)#创建新文件并写入字符串

上传本地文件到HDFS

from pyhdfs import HdfsClient
client = HdfsClient(hosts='ghym:50070', user_name='hadoop')
client.copy_from_local('d:/pydemo.txt', '/pydemo')#本地文件绝对路径,HDFS目录必须不存在

3. 读取文本文件写入csv

Python安装pandas模块

确认文本文件的分隔符

# pyhdfs读取文本文件,分隔符为逗号,
from pyhdfs import HdfsClient
client = HdfsClient(hosts='ghym:50070', user_name='hadoop')
inputfile=client.open('/int.txt')
# pandas调用读取方法read_table
import pandas as pd
df=pd.read_table(inputfile,encoding='gbk',sep=',')#参数为源文件,编码,分隔符
# 数据集to_csv方法转换为csv
df.to_csv('demo.csv',encoding='gbk',index=None)#参数为目标文件,编码,是否要索引

以上这篇python读取hdfs并返回dataframe教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
实例讲解python中的序列化知识点
Oct 08 Python
python实现推箱子游戏
Mar 25 Python
Pandas分组与排序的实现
Jul 23 Python
python读写csv文件的方法
Aug 13 Python
python编写简单端口扫描器
Sep 04 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
Python 如何批量更新已安装的库
May 26 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
python属于哪种语言
Aug 16 Python
PyTorch中的torch.cat简单介绍
Mar 17 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 #Python
python mysql中in参数化说明
Jun 05 #Python
JAVA SWT事件四种写法实例解析
Jun 05 #Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 #Python
基于Python爬虫采集天气网实时信息
Jun 05 #Python
浅谈pymysql查询语句中带有in时传递参数的问题
Jun 05 #Python
Python调用.net动态库实现过程解析
Jun 05 #Python
You might like
4.与数据库的连接
2006/10/09 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
用matplotlib画等高线图详解
2017/12/14 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python flask框架实现重定向功能示例
2019/07/02 Python
django-allauth入门学习和使用详解
2019/07/03 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Python同时处理多个异常的方法
2020/07/28 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
安全生产责任书范本
2014/04/15 职场文书
端午节活动总结
2014/08/26 职场文书
超市创业计划书
2014/09/15 职场文书
目标责任书格式范文
2015/05/11 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
决心书格式及范文
2019/06/24 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Spring 使用注解开发
2022/05/20 Java/Android