繁体   English   中英

在Python中将Foreach与Spark RDD结合使用

[英]Using foreach with a Spark RDD in python

我正在尝试在群集上运行一个非常大的RDD并将其写入.csv。 它太大以至于.collect()会中断,所以我想将RDD保存为每个节点的片段,然后以某种方式将它们组合在一起,因为顺序无关紧要。 我的想法是将foreach与CSV打印机功能一起使用,以便每个部分都写入其值,然后我可以手动将这些部分收集在一起,也许通过FTP。

我是一个有一定经验的Spark用户,但是迄今为止,我从未能够使RDD的foreach方法做任何有用的事情。 当我尝试运行文档中给出的示例时,

>>> def f(x): print x
>>> sc.parallelize([1, 2, 3, 4, 5]).foreach(f)

我的控制台上什么也没回来。 我相信这是因为“打印”是在单独的节点而不是控制台所在的namenode上执行的。 但是在那种情况下,我真的根本看不出foreach函数有什么意义!

如何在不首先调用collect()函数的情况下将每个结果返回到名称节点?

NB。 我也愿意使用saveAsTextFile()RDD函数,但是我仍然无法使其正常工作! 似乎是创建一个文件夹而不是一个文本文件,尽管这也许是因为它们也存在于每个节点上而不是集中存在吗?

答案在这里: 在Python Spark中查看RDD内容?

声称的原因是它不是Python 2.6函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM