2017-07-26 9 views
2

私はPython(2.7)クラスを含むディレクトリのVM上にいます。自分のクラスのインスタンスを自分のHDFSのディレクトリに保存しようとしています。私はの線に沿って何かやろうとしているPython pickleを使用してHadoop 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) 

を、私はsnakebiteのようなものを助けることができるかもしれないと思う...しかし、誰もがより具体的なを持っていません提案?あなたが十分な権限を持つJupyterのノートブックで実行されている場合、ここで

+0

毒ヘビにかまれた傷は、HDFSへの書き込みはありません。 https://github.com/spotify/snakebite/issues/227 –

答えて

1

は、回避策は、次のとおりです。

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 
+0

pythonスクリプトからjpyterノートブックではなくhdfsにモデルを書き込む方法は? –