不多说,直接上代码

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读取hdfs并返回dataframe教程

本文地址: http://www.cppcns.com/jiaoben/python/316787.html

python读hadoop_python读取hdfs并返回dataframe教程相关推荐

  1. python导入txt为dataframe-python批量读取txt文件为DataFrame的方法

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  2. python读取txt为dataframe_python批量读取txt文件为DataFrame格式的方法总结

    python怎么批量读取txt文件为DataFrame格式 这次给大家带来python怎么批量读取txt文件为DataFrame格式,python批量读取txt文件为DataFrame格式的注意事项有 ...

  3. python 批量读取csv_Python Pandas批量读取csv文件到dataframe的方法

    PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径.然后定义一个列表,读取文件后再使用concat合并读取到的数据. #读取数据 import p ...

  4. python 批量读取csv 文件到dataframe_python 批量读取csv_Python Pandas批量读取csv文件到dataframe的方法...

    PYTHON Pandas批量读取csv文件到DATAFRAME 首先使用glob.glob获得文件路径.然后定义一个列表,读取文件后再使用concat合并读取到的数据. #读取数据 import p ...

  5. python读取txt为dataframe_python批量读取txt文件为DataFrame的方法

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  6. python读取HDFS文件

    2019独角兽企业重金招聘Python工程师标准>>> ###方法一:使用hdfs库读取HDFS文件 ###在读取数据时,要加上 encoding='utf-8',否则字符串前面会有 ...

  7. Spark没有读取HDFS文件的方法?那textFile是怎么读的?

    直入正题吧,ctrl+鼠标点进textFile方法. package org.apache.spark ......... /*** Read a text file from HDFS, a loc ...

  8. python按行读字符串,python按行读取文件并找出其中指定字符串

    python怎么提取出文件里的指定内容 python读取文件内容的方法: 一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中: all_the_text = open('thefile ...

  9. python读取txt文件为dataframe,python批量读取txt文件为DataFrame

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

最新文章

  1. 蜘蛛爬虫网络高像素图片抓取工具[搜索引擎]
  2. Linux同步自己的配置,Linux学习心得之——Rsync同步配置
  3. 自定义母版页之列表过滤菜单位置issue fix
  4. 今天改bug遇到一个ie8样式错乱问题
  5. ORACLE穿透防火墙问题
  6. Python Excel表格操作总结
  7. 强化学习-动态规划_强化学习-第4部分
  8. 那些不回微信的人,都在看什么?
  9. linux忘记mysql密码_linux下忘记mysql root密码解决办法 | 系统运维
  10. mysql data transfer_MySQL主从同步加速 Transfer-- FAQ
  11. 微信又上线新功能,能让你更会聊天?
  12. HDU 4389——X mod f(x)(数位DP)
  13. 推荐15个在线多媒体(图片、音频、视频)编辑器,互联网营销
  14. Java 设置 JLabel 字体 颜色
  15. 转录组:STAR-Fusion融合基因
  16. Pr_cc 学习笔记(二)鬼畜剪辑
  17. 华为计算机网络基础知识,华为HCNE专题一:网络基础知识
  18. Mybatis 框架CRUD的操作 案例
  19. 报告分析工具创建完美的分析报告
  20. leetcode 寻找峰值

热门文章

  1. 【IDEA】Cause: invalid type code: 8D
  2. 【Kafka】Kafka 2.6新功能:消费者主动触发Rebalance
  3. 【Avro】两种根据avsc文件生成avro序列化的实体类-maven和avro-tool
  4. 【grafana】grafana 添加 MySQL 本地无法连接
  5. Kafka : kafka errors.DisconnectException: null
  6. 10-R语言文本挖掘tm包详解
  7. 第三方开源 jar 包推荐
  8. SpringBoot 接口快速开发神器(接口可视化界面实现)
  9. 生产环境中,RabbitMQ 持续积压消息不进行ack ,发生什么了?
  10. aws python sns_使用AWS Lambd从AWS SNS读取时修改JSON消息