簡體   English   中英

如何使用 Python pickle 將文件轉儲到 Hadoop HDFS 目錄?

[英]How to dump a file to a Hadoop HDFS directory using Python pickle?

我在包含我的 Python (2.7) 類的目錄中的 VM 上。 我正在嘗試將我的類的一個實例腌制到我的 HDFS 中的一個目錄中。

我正在嘗試按照以下方式做一些事情:

import pickle

my_obj = MyClass() # the class instance that I want to pickle

with open('hdfs://domain.example.com/path/to/directory/') as hdfs_loc:
    pickle.dump(my_obj, hdfs_loc)

根據我所做的研究,我認為像蛇咬這樣的東西可能會有所幫助……但是有人有更具體的建議嗎?

如果你使用 PySpark,那么你可以使用saveAsPickleFile方法:

temp_rdd = sc.parallelize(my_obj)
temp_rdd.coalesce(1).saveAsPickleFile("/test/tmp/data/destination.pickle")

如果您在具有足夠權限的 Jupyter 筆記本中運行,這是一個解決方法:

import pickle

my_obj = MyClass() # the class instance that I want to pickle
local_filename = "pickle.p"
hdfs_loc = "//domain.example.com/path/to/directory/"
with open(local_filename, 'wb') as f:
    pickle.dump(my_obj, f)
!!hdfs dfs -copyFromLocal $local_filename  $hdfs_loc

您可以使用PyArrow將 Pickle 對象轉儲到 HDFS:

import pickle
import pyarrow as pa

my_obj = MyClass() # the class instance that I want to pickle

hdfs = pa.hdfs.connect()
with hdfs.open('hdfs://domain.example.com/path/to/directory/filename.pkl', 'wb') as hdfs_file:
    pickle.dump(my_obj, hdfs_file)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM