私はクライアントからファイルを受け取り、そのファイルをローカルシステムのHDFSに保存する必要があるbottle
apiを定義しています。ボトルapiの受信ファイルをhdfsに保存するには
コードは次のようになります。
@route('/upload', method='POST')
def do_upload():
import pdb; pdb.set_trace()
upload = request.files.upload
name, ext = os.path.splitext(upload.filename)
save_path = "/data/{user}/{filename}".format(user=USER, filename=name)
hadoopy.writetb(save_path, upload.file.read())
return "File successfully saved to '{0}'.".format(save_path)
問題があり、request.files.upload.file
は.read()
方法でstr
に変換することができるタイプcStringIO.StringO
の目的です。しかし、hadoopy.writetb(path, content)
は、コンテンツが他の形式であると予想し、その時点でサーバーが固執します。それは例外を与えません、それはエラーまたは何らかの結果を与えません。ちょうど無限ループのようにそこに立っています。
ボトルAPIの受信ファイルをHDFSに書き込む方法を知っている人はいますか? writetb
の2番目のパラメータは、ペアの反復可能なことになっているようhadoopy documentationから
WebHDFSは基本的に書き直していますか? –
いいえ、私はちょうどボトルのapisとそのうちの1つをアップロードし、HDFSとの間で読み書きしたいと思っています。 –