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 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
python在Windows8下获取本机ip地址的方法
Mar 14 Python
python中Flask框架简单入门实例
Mar 21 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
numpy.where() 用法详解
May 27 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
Django框架视图介绍与使用详解
Jul 18 Python
python写程序统计词频的方法
Jul 29 Python
Pycharm远程调试原理及具体配置详解
Aug 08 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 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 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
基于jQuery的获取标签名的代码
2012/07/16 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
python去除所有html标签的方法
2015/05/05 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
python redis存入字典序列化存储教程
2020/07/16 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
2015年安全生产责任书
2015/01/30 职场文书
奖励通知
2015/04/22 职场文书
离婚承诺书格式范文
2015/05/04 职场文书