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创建日历实例
Aug 21 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
python判断元素是否存在的实例方法
Sep 24 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
python中24小时制转换为12小时制的方法
Jun 18 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 Python
Python语言中的数据类型-序列
Feb 24 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
php 小乘法表实现代码
2009/07/16 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
Zend的Registry机制的使用说明
2013/05/02 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
Python实现LRU算法的2种方法
2015/06/24 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Python单元测试与测试用例简析
2019/11/09 Python
Python实现验证码识别
2020/06/15 Python
python接入支付宝的实例操作
2020/07/20 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
J2EE相关知识面试题
2013/08/26 面试题
放飞理想演讲稿
2014/09/09 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
民事起诉状范文
2015/05/19 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
Python中re模块的元字符使用小结
2022/04/07 Python