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入门之三角函数atan2()函数详解
Nov 08 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python单例设计模式实现解析
Jan 07 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
深入浅析python变量加逗号,的含义
Feb 22 Python
django自带的权限管理Permission用法说明
May 13 Python
Python代码中如何读取键盘录入的值
May 27 Python
python 模块导入问题汇总
Feb 01 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中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
php随机抽奖实例分析
2015/03/04 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
easyui validatebox验证
2016/04/29 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
常用python编程模板汇总
2016/02/12 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
向领导表决心的话
2014/03/11 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
道歉的话语大全
2015/05/12 职场文书
患者身份识别制度
2015/08/06 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
Python中request的基本使用解决乱码问题
2022/04/12 Python
方法汇总:Python 安装第三方库常用
2022/04/26 Python