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中method的参数传递过程
Apr 02 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
Python中super()函数简介及用法分享
Jul 11 Python
python中正则表达式 re.findall 用法
Oct 23 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
python使用matplotlib绘制雷达图
Oct 18 Python
Python实现打印实心和空心菱形
Nov 23 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
Python基础之函数嵌套知识总结
May 23 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 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
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
php格式文件打开的四种方法
2018/02/24 PHP
php实现微信支付之企业付款
2018/05/30 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
推荐:极酷右键菜单
2006/11/29 Javascript
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
Python文件处理
2016/02/29 Python
python web框架 django wsgi原理解析
2019/08/20 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
2014年内勤工作总结
2014/11/24 职场文书
地道战观后感400字
2015/06/04 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python