91精品新拍在线观看,91精品一区二区,91精品一区二区三区久久久久,91精品在线播放,91精品中综合久久久久婷婷

<pre id="fhfjj"><ruby id="fhfjj"><var id="fhfjj"></var></ruby></pre>
    <p id="fhfjj"><del id="fhfjj"></del></p>

    <p id="fhfjj"><mark id="fhfjj"><progress id="fhfjj"></progress></mark></p>

      當前位置: 首頁 / 技術分享 / 正文
      Python操作HDFS

      2023-02-23

         文件 hdfs

      Python操作HDFS

        三方庫的安裝

        Python原生并沒有對HDFS的支持,如果想要使用Python來操作HDFS,需要我們安裝第三方庫 hdfs

        pip install hdfs

        安裝完畢后,我們就可以使用python來操作HDFS咯。

        客戶端的獲取

        在操作HDFS的時候,第一步我們要做的就是獲取到HDFS的客戶端,建立與HDFS的連接。

        在hdfs模塊中有兩個類,都是HDFS的客戶端:Client和InsecureClient

        ●Client: HDFS客戶端類,其中定義了對HDFS的操作,但是不能指定操作的用戶

        ●InsecureClient: Client的子類,可以指定操作的用戶

        from hdfs import InsecureClient

        """

        1. 創建客戶端對象,需要設置兩個參數

        url: 連接到的HDFS的namenode,需要設置的是webui的地址

        user: 設置操作HDFS的用戶

        """

        client = InsecureClient(url="http://qianfeng01:9870", user="root")

        增操作

        # 1. 創建一個新的文件夾

        client.makedirs("/py_dir")

        # 2. 上傳本地文件

        client.upload("/py_dirs", "./1. Python操作HDFS.py", )

        # 3. 直接創建文件

        client.write("/py_dir/test.file", data="this is a py file", overwrite=True, enco

        刪操作

        # 1. 刪除文件

        client.delete("/py_dir/test.file")

        # 2. 刪除文件夾,默認只能刪除空的文件夾

        # 如果需要刪除非空的文件夾,需要設置recursive為True,實現遞歸刪除

        client.delete("/py_dir", recursive=True)

        改操作

        # 1. 重命名文件、文件夾

        client.rename("/py_dir", "/py_dirs")

        查操作

        # 1. 列舉一個文件夾下有什么文件,返回一個list

        sub = client.list("/")

        print(type(sub), sub)

        # 2. 查看文件屬性

        # strict:

        # True: 嚴格模式,如果指定的文件/文件夾不存在,則會拋異常。默認。

        # False: 非嚴格模式,如果指定的文件/文件夾不存在,不會拋異常,返回None。

        # 返回值是一個字典:

        # blockSize: 塊大小

        # accessTime: 訪問時間

        # childrenNum: 子文件的數量,對于文件來說就是0

        # fileId: 文件ID

        # group: 所屬用戶組

        # length: 文件大小(字節)

        # modificationTime: 文件修改時間

        # owner: 所屬用戶

        # permission: 文件權限

        # replication: 副本數量

        # type : 文件類型 DIRECTORY|FILE

        print(client.status("/py_dirs"))

        # 3. 查看文件中的內容,返回_GeneratorContextManager

        res = client.read("/py_dirs/1. Python操作HDFS.py")

        print(res)

        res.close()

        with client.read("/py_dirs/1. Python操作HDFS.py") as file:

        # read會將讀取到的數據存儲到data中,用utf8解碼即可

        print(file.data.decode("utf8"))

        # 4. 對于大型的文件,如果直接讀取到內存中,可能會造成內存溢出的情況。因此需要分段讀取

        file_path = "/py_dirs/1. Python操作HDFS.py"

        offset = 0

        length = 128

        file_length = client.status(file_path).get("length")

        while offset < file_length:

        with client.read(file_path, offset=offset, length=length) as reader:

        print(reader.data.decode("utf8"))

        offset += length

        # 5. 下載文件到本地

        client.download("/py_dirs", "./")

      好程序員公眾號

      • · 剖析行業發展趨勢
      • · 匯聚企業項目源碼

      好程序員開班動態

      More+
      • HTML5大前端 <高端班>

        開班時間:2021-04-12(深圳)

        開班盛況

        開班時間:2021-05-17(北京)

        開班盛況
      • 大數據+人工智能 <高端班>

        開班時間:2021-03-22(杭州)

        開班盛況

        開班時間:2021-04-26(北京)

        開班盛況
      • JavaEE分布式開發 <高端班>

        開班時間:2021-05-10(北京)

        開班盛況

        開班時間:2021-02-22(北京)

        開班盛況
      • Python人工智能+數據分析 <高端班>

        開班時間:2021-07-12(北京)

        預約報名

        開班時間:2020-09-21(上海)

        開班盛況
      • 云計算開發 <高端班>

        開班時間:2021-07-12(北京)

        預約報名

        開班時間:2019-07-22(北京)

        開班盛況
      IT培訓IT培訓
      在線咨詢
      IT培訓IT培訓
      試聽
      IT培訓IT培訓
      入學教程
      IT培訓IT培訓
      立即報名
      IT培訓

      Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

      91精品新拍在线观看,91精品一区二区,91精品一区二区三区久久久久,91精品在线播放,91精品中综合久久久久婷婷