国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python使用hdfs3模塊對hdfs進行操作詳解

python使用hdfs3模塊對hdfs進行操作詳解

2020-06-06 12:29蝸牛!Destiny Python

這篇文章主要介紹了python使用hdfs3模塊對hdfs進行操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

之前一直使用hdfs的命令進行hdfs操作,比如:

?
1
2
3
4
5
hdfs dfs -ls /user/spark/
hdfs dfs -get /user/spark/a.txt /home/spark/a.txt #從HDFS獲取數據到本地
hdfs dfs -put -f /home/spark/a.txt /user/spark/a.txt #從本地覆蓋式上傳
hdfs dfs -mkdir -p /user/spark/home/datetime=20180817/
....

身為一個python程序員,每天操作hdfs都是在程序中寫各種cmd調用的命令,一方面不好看,另一方面身為一個Pythoner這是一個恥辱,于是乎就挑了一個hdfs3的模塊進行hdfs的操作,瞬間就感覺優雅多了:

hdfs 官方API:https://hdfs3.readthedocs.io/en/latest/api.html

?
1
2
3
4
5
6
>>> from hdfs3 import HDFileSystem
#鏈接HDFS
>>> hdfs = HDFileSystem(host='localhost', port=8020)
>>> hdfs.ls('/user/data')
>>> hdfs.put('local-file.txt', '/user/data/remote-file.txt')
>>> hdfs.cp('/user/data/file.txt', '/user2/data')

#文件讀取

?
1
2
3
4
5
6
#txt文件全部讀取
>>> with hdfs.open('/user/data/file.txt') as f:
...  data = f.read(1000000)
#使用pandas讀取1000行數據
>>> with hdfs.open('/user/data/file.csv.gz') as f:
...  df = pandas.read_csv(f, compression='gzip', nrows=1000)

#寫入文件

>>> with hdfs.open('/tmp/myfile.txt', 'wb') as f:
... f.write(b'Hello, world!')

#多節點連接設置

?
1
2
3
4
5
6
7
8
9
10
host = "nameservice1"
conf = {"dfs.nameservices": "nameservice1",
  "dfs.ha.namenodes.nameservice1": "namenode113,namenode188",
  "dfs.namenode.rpc-address.nameservice1.namenode113": "hostname_of_server1:8020",
  "dfs.namenode.rpc-address.nameservice1.namenode188": "hostname_of_server2:8020",
  "dfs.namenode.http-address.nameservice1.namenode188": "hostname_of_server1:50070",
  "dfs.namenode.http-address.nameservice1.namenode188": "hostname_of_server2:50070",
  "hadoop.security.authentication": "kerberos"
}
fs = HDFileSystem(host=host, pars=conf)

#API

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
hdfs = HDFileSystem(host='127.0.0.1', port=8020)
hdfs.cancel_token(token=None) #未知,求大佬指點
hdfs.cat(path) #獲取指定目錄或文件的內容
hdfs.chmod(path, mode) #修改制定目錄的操作權限
hdfs.chown(path, owner, group) #修改目錄所有者,以及用戶組
hdfs.concat(destination, paths) #將指定多個路徑paths的文件,合并成一個文件寫入到destination的路徑,并刪除源文件(The source files are deleted on successful completion.成功完成后將刪除源文件。)
hdfs.connect() #連接到名稱節點 這在啟動時自動發生。 LZ:未知作用,按字面意思,應該是第一步HDFileSystem(host='127.0.0.1', port=8020)發生的
hdfs.delegate_token(user=None)
hdfs.df() #HDFS系統上使用/空閑的磁盤空間
hdfs.disconnect() #跟connect()相反,斷開連接
hdfs.du(path, total=False, deep=False) #查看指定目錄的文件大小,total是否把大小加起來一個總數,deep是否遞歸到子目錄
hdfs.exists(path) #路徑是否存在
hdfs.get(hdfs_path, local_path, blocksize=65536) #將HDFS文件復制到本地,blocksize設置一次讀取的大小
hdfs.get_block_locations(path, start=0, length=0) #獲取塊的物理位置
hdfs.getmerge(path, filename, blocksize=65536) #獲取制定目錄下的所有文件,復制合并到本地文件
hdfs.glob(path) #/user/spark/abc-*.txt 獲取與這個路徑相匹配的路徑列表
hdfs.head(path, size=1024) #獲取指定路徑下的文件頭部分的數據
hdfs.info(path) #獲取指定路徑文件的信息
hdfs.isdir(path) #判斷指定路徑是否是一個文件夾
hdfs.isfile(path) #判斷指定路徑是否是一個文件
hdfs.list_encryption_zones() #獲取所有加密區域的列表
hdfs.ls(path, detail=False) #返回指定路徑下的文件路徑,detail文件詳細信息
hdfs.makedirs(path, mode=457) #創建文件目錄類似 mkdir -p
hdfs.mkdir(path) #創建文件目錄
hdfs.mv(path1, path2) #將path1移動到path2
open(path, mode='rb', replication=0, buff=0, block_size=0) #讀取文件,類似于python的文件讀取
hdfs.put(filename, path, chunk=65536, replication=0, block_size=0) #將本地的文件上傳到,HDFS指定目錄
hdfs.read_block(fn, offset, length, delimiter=None) #指定路徑文件的offset指定讀取字節的起始點,length讀取長度,delimiter確保讀取在分隔符bytestring上開始和停止
>>> hdfs.read_block('/data/file.csv', 0, 13)
b'Alice, 100\nBo'
>>> hdfs.read_block('/data/file.csv', 0, 13, delimiter=b'\n')
b'Alice, 100\nBob, 200'
hdfs.rm(path, recursive=True) #刪除指定路徑recursive是否遞歸刪除
hdfs.tail(path, size=1024) #獲取 文件最后一部分的數據
hdfs.touch(path) #創建一個空文件
hdfs.walk(path) #遍歷文件樹

補充知識:HDFS命令批量創建文件夾和文件

批量創建測試文件夾:

hadoop fs -mkdir -p /user/hivedata/temp/201912311001/d={27..30}/h={10..17}/m5={5,15,25}/

批量創建測試文件:

hadoop fs -touchz /user/hivedata/temp/201912311001/d={27..30}/h={10..17}/m5={5,15,25}/{0..5}.orc

最終效果:

hadoop fs -ls -R /user/hivedata/

python使用hdfs3模塊對hdfs進行操作詳解

以上這篇python使用hdfs3模塊對hdfs進行操作詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/u013429010/article/details/81772130

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲视频在线观看视频 | 亚洲精品美女 | 91嫩草精品 | 亚洲一区二区视频 | 夜夜视频| 91精品视频免费在线观看 | 欧美午夜精品 | 天天射天天干 | 最新国产在线 | 黄毛片| 免费在线看a| av免费影视| 夜夜骑首页 | 亚洲国产精品免费在线观看 | 久久国产精品久久久久久电车 | 久久大陆| 亚洲欧美一区二区三区在线 | 91精品国产综合久久久久 | 午夜男人的天堂 | av手机在线播放 | 免费av在线| 亚洲免费视频网 | 一级欧美在线 | 毛片网站在线 | 久草福利 | 中文字幕在线一区二区三区 | 中文字幕亚洲欧美日韩在线不卡 | 中文字幕日韩欧美一区二区三区 | 观看av| 免费的黄视频 | 日韩一区精品 | 国产精品一区二 | 国产美女一区二区 | 国产99一区二区 | 中文字幕国产视频 | 插插射啊爱视频日a级 | 国产在线网站 | 精品视频在线免费观看 | 日韩一区久久 | 中文字幕不卡在线观看 | 黄色高清视频在线观看 |