首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将瓶子api中的传入文件保存到hdfs

如何将瓶子api中的传入文件保存到hdfs
EN

Stack Overflow用户
提问于 2017-09-09 05:34:37
回答 1查看 132关注 0票数 0

我正在定义HDFS,我需要在其中接受来自客户端的文件,然后将该文件保存到本地系统上的bottle

代码看起来像这样。

代码语言:javascript
复制
@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吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-11 01:15:17

hadoopy documentation看起来,writetb的第二个参数应该是可迭代的对;但是您传入的是字节。

...the hadoopy.writetb命令,它接受键/值对的迭代器...

你有没有试过传一对?而不是你在做什么,

代码语言:javascript
复制
hadoopy.writetb(save_path, upload.file.read())  # 2nd param is wrong

试试这个:

代码语言:javascript
复制
hadoopy.writetb(save_path, (path, upload.file.read()))

(我不熟悉Hadoop,所以我不清楚path的语义是什么,但对于了解HDFS的人来说,它大概是有意义的。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46124829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档