使用Python操作HDFS,可以使用hdfs
库。操作中需要用到iris.csv文件。
安装
首先安装hdfs
pip3 install hdfs
使用
导入
from hdfs import *
连接
Hadoop 3.x是9870,Hadoop 2.x是50070
client=Client("http://ec2-3-99-26-138.ca-central-1.compute.amazonaws.com:50070")
查看目录情况
client.status("/")
{'accessTime': 0,
'blockSize': 0,
'childrenNum': 5,
'fileId': 16385,
'group': 'hadoop',
'length': 0,
'modificationTime': 1629893809159,
'owner': 'hdfs',
'pathSuffix': '',
'permission': '777',
'replication': 0,
'storagePolicy': 0,
'type': 'DIRECTORY'}
查看目录中的文件
client.list("/")
['apps', 'tmp', 'user', 'var']
上传文件
上传文件(如果遇到error,则是权限问题)
# 第一个是HDFS上的地址,第二个是本地文件的地址
client.upload("/myiris.csv","iris.csv")
再看一下目录中的文件
client.list("/")
['apps', 'myiris.csv', 'tmp', 'user', 'var']
下载文件
client.download("/myiris.csv","./myiris")
再看一下
!ls
myiris xxx.ipynb
读取文件
with client.read("/myiris.csv") as reader:
print(print(''.join([chr(c) for c in list(reader.read())])))
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
...
5.5,2.3,4.0,1.3,Iris-versicolor
6.5,2.8,4.6,1.5,Iris-versicolor
5.7,2.8,4.5,1.3,Iris-versicolor
6.3,3.3,4.7,1.6,Iris-versicolor
4.9,2.4,3.3,1.0,Iris-versicolor