如何用Python在Hadoop中保存文件

1 投票
2 回答
2480 浏览
提问于 2025-04-18 07:23

我正在尝试用 Python 2.7 在 Hadoop 中保存文件。我在网上搜索了一下,找到了可以在 Hadoop 中保存文件的代码,但它保存的时候会把整个文件夹都保存上去(文件夹里的所有文件都会被保存到 Hadoop 中)。不过我只想保存一个特定的文件。

这是一个关于如何在 Hadoop 中保存文件夹的链接:http://www.hadoopy.com/en/latest/tutorial.html#putting-data-on-hdfs

现在我想要的是在 Hadoop 中保存一个特定的文件,比如 abc.txt

这是我的代码:

import hadoopy
hdfs_path = 'hdfs://192.168.x.xxx:xxxx/video/py5'
def main():
   local_path = open('abc.txt').read()
   hadoopy.writetb(hdfs_path, local_path)


if __name__ == '__main__':
    main()

在这里我遇到了一个问题,提示说 need more than one value to unpack

任何帮助都会很感激。

2 个回答

0

http://www.hadoopy.com/en/latest/api.html?highlight=hadoopy.writetb#hadoopy.writetb

writedb 这个函数需要第二个参数是一个键值对的迭代器,也就是一组 (键, 值) 的组合。

根据你提供的链接,你在代码中忘记复制 read_local_dir 这个函数了。

1

hadoopy.writetb 这个函数似乎需要第二个参数是一个包含两个值的可迭代对象。你可以试试:

hadoopy.writetb(hdfs_path, [("abc.txt", open("abc.txt").read())])

撰写回答