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中的With语句
Mar 18 Python
Python贪心算法实例小结
Apr 22 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
set在python里的含义和用法
Jun 24 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
python正则表达式re.match()匹配多个字符方法的实现
Jan 27 Python
python办公自动化之excel的操作
May 23 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php导入模块文件分享
2015/03/17 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
js实现图片轮播效果
2015/12/19 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
JavaScript回调函数callback用法解析
2020/01/14 Javascript
python创建和删除目录的方法
2015/04/29 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python3.7 sys模块的具体使用
2019/07/22 Python
python同步windows和linux文件
2019/08/29 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
Python进行统计建模
2020/08/10 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
后勤采购员岗位职责
2013/12/19 职场文书
致短跑运动员广播稿
2014/01/09 职场文书
个人对照检查材料
2014/02/12 职场文书
促销活动方案模板
2014/02/24 职场文书
环保建议书400字
2014/05/14 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
个人借款协议书范本
2014/11/17 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang