使用python操作hdfs

简介

使用python对hdfs进行操作. 这里选择使用hdfs库。

相关链接

安装

pip install hdfs

介绍常用使用

创建一个hdfs client

txz-data0:50070是hdfs namenode的ip地址. 使用hadoop用户去操作

client = InsecureClient("http://txz-data0:50070", user="hadoop")

删除文件

client.delete("/tmp/test.txt")

从hdfs中下载文件到本地

client.download("hdfs路径", "本地路径")

查看目录

client.list("/tmp")

文件或文件夹的状态

client.status("/tmp")

文件的上传

client.upload("hdfs路径", "本地路径")

文件的读操作

with client.read('/tmp/test.txt') as reader:
  content = reader.read()

文件的写操作

注意: 写多条数据时,不会自动换行,需要自己添加\n换行

两种形式的写入


from json import dump, dumps

client.write('/tmp/test.txt', encoding='utf-8') as writer:
  writer.write("hello")

client.write('/tmp/test.tx', data="world", encoding='utf-8')

配置文件

每次操作hdfs都需要在代码中输入hdfs地址及user用户。可以写入到配置文件~/.hdfscli.cfg中,然后从代码中读取配置获取client,这样方便许多.

配置文件


[global]
default.alias = dev

[dev.alias]
url = http://txz-data0:50070
user = hadoop

使用配置文件获取client

client = Config().get_client('dev')

应用

追加写入数据到hdfs中

client.wirte这个接口有个append参数,但是如果文件不存在,则会报错,所以需要先创建一个空的文件,然后再在程序后面不断的append到文件中.

# 创建文件. 如果没有输入data为空字符串,则不会创建文件
client.write("/tmp/test.txt", data="")
.....
# 不断的追加
client.write("/tmp/test.txt", data="hello", append=True)

欢迎关注,互相学习,共同进步~

我的个人博客

我的微信公众号:编程黑洞

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HDFSHadoop Distributed File System)是Apache Hadoop生态系统中的一部分,是一个分布式文件系统,用于存储和管理大规模数据集。HDFS旨在运行在低成本硬件上,并具有高容错性、高可扩展性和高吞吐量等优点。Python是一种流行的编程语言,可以用于操作HDFS系统文件。 Python操作HDFS系统文件的背景: 随着大数据技术的发展,越来越多的企业和组织开始使用HadoopHDFS来存储和管理大规模数据集。而Python作为一种广泛使用的编程语言,对于许多数据科学家和工程师来说是必不可少的工具。因此,Python操作HDFS系统文件的需求也越来越大。 Python操作HDFS系统文件的研究意义: 1. 提高工作效率:使用Python操作HDFS系统文件可以帮助数据科学家和工程师更快地处理和管理大规模数据集,提高工作效率。 2. 扩展应用场景:Python的广泛应用和HDFS的高可扩展性使得Python操作HDFS系统文件的应用场景更加广泛,可以应用于各种类型的数据处理和分析。 3. 降低技术门槛:使用Python操作HDFS系统文件可以降低技术门槛,使得更多的人可以轻松地处理和管理大规模数据集。 4. 促进技术创新:Python操作HDFS系统文件的应用可以促进技术创新,鼓励开发人员开发更多的工具和库来简化数据处理和管理。 总之,Python操作HDFS系统文件是一个有意义的研究方向,可以帮助我们更好地处理和管理大规模数据集,促进数据科学和工程的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值