python讀取hdfs資料

2021-09-11 05:27:41 字數 1465 閱讀 6038

載入包

from hdfs.client import client

self.filename = "/user/hdfs/read.txt"

讀取hdfs檔案內容,將每行存入陣列返回
def read_hdfs_file(self):

# with client.read('samples.csv', encoding='utf-8', delimiter='\n') as reader:

# for line in reader:

# pass

lines =

with self.client.read(self.filename, encoding='utf-8', delimiter='\n') as reader:

for line in reader:

# pass

# print line.strip()

return lines

# 建立目錄
def mkdirs(self, hdfs_path):

self.client.makedirs(hdfs_path)

刪除hdfs檔案
def delete_hdfs_file(self,hdfs_path):

self.client.delete(hdfs_path)

上傳檔案到hdfs
def put_to_hdfs(self, local_path, hdfs_path):

self.client.upload(hdfs_path, local_path, cleanup=true)

從hdfs獲取檔案到本地
def get_from_hdfs(self, hdfs_path, local_path):

self.client.download(hdfs_path, local_path, overwrite=false)

追加資料到hdfs檔案

覆蓋資料寫到hdfs檔案

def write_to_hdfs(self, hdfs_path, data):
# 移動或者修改檔案
def move_or_rename(self,hdfs_src_path, hdfs_dst_path):

self.client.rename(hdfs_src_path, hdfs_dst_path)

# 返回目錄下的檔案
def list(self,hdfs_path):

return self.client.list(hdfs_path, status=false)

HDFS讀取資料的流程

1 客戶端通過呼叫filesystem物件的open 來讀取希望開啟的檔案。2 client向namenode發起rpc請求,來確定請求檔案block所在的位置 3 namenode會視情況返回檔案的部分或者全部block列表,對於每個block,namenode 都會返回含有該 block 副本的...

python讀取hdfs並返回dataframe

不多說,直接上 filename tmp preprocess part 00000 hdfs檔案路徑 columnnames xx def readhdfs 讀取hdfs檔案 returns df dataframe hdfs資料 client client hdfshost 目前讀取hdfs檔案...

python讀取hdfs上的parquet檔案方式

在使用python做大資料和機器學習處理過程中,首先需要讀取hdfs資料,對於常用格式資料一般比較容易讀取,parquet略微特殊。從hdfs上使用python獲取parquet格式資料的方法 當然也可以先把檔案拉到本地再讀取也可以 1 安裝anaconda環境。2 安裝hdfs3。conda in...