我正在定义bottle
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
是类型为cStringIO.StringO
的对象,可以用.read()
方法将其转换为str
。但是hadoopy.writetb(path, content)
希望内容是其他格式的,而服务器会坚持这一点。它不会给出异常,也不会给出错误或任何结果。只是站在那里,好像它是在无限的循环。你知道吗
有人知道如何在瓶api中将传入文件写入HDFS吗?你知道吗
从hadoopy documentation来看,
writetb
的第二个参数应该是成对的iterable;但是您传递的是字节。你知道吗你试过穿一双吗?而不是你在做什么
试试这个:
(我不熟悉Hadoop,所以我不清楚
path
的语义是什么,但可能对了解HDFS的人来说是有意义的。)相关问题 更多 >
编程相关推荐