如何用Python在Hadoop中保存文件
我正在尝试用 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())])