在PythonSpark中,如何直接写入HDFS文件而不是使用saveAsTextFile?

在PythonSpark中,如何直接写入HDFS文件而不是使用saveAsTextFile?,python,apache-spark,hdfs,pyspark,Python,Apache Spark,Hdfs,Pyspark,我已经到了某种程度,得到了groupByKey操作的结果。现在我想将每个(key,value)对写入不同的文件,使用k作为它们的名称,使用v作为它们的内容 首先,我试图在驱动程序中收集这些结果,以便使用open()并写入本地文件,但由于结果的大小非常大,导致缓冲区溢出而失败 然后,我尝试过滤那些(键、值)对,以生成新的RDD,以便为每个新RDD使用saveAsTextFile,但对于网络通信来说,速度似乎太慢了 现在我想如果我可以在groupByKeyRDD上使用foreach操作,并在每次迭代

我已经到了某种程度,得到了
groupByKey
操作的结果。现在我想将每个
(key,value)
对写入不同的文件,使用
k
作为它们的名称,使用
v
作为它们的内容

首先,我试图在驱动程序中收集这些结果,以便使用
open()
并写入本地文件,但由于结果的大小非常大,导致缓冲区溢出而失败

然后,我尝试过滤那些
(键、值)
对,以生成新的RDD,以便为每个新RDD使用
saveAsTextFile
,但对于网络通信来说,速度似乎太慢了

现在我想如果我可以在
groupByKey
RDD上使用
foreach
操作,并在每次迭代中直接写入HDFS文件,那么速度应该会更快,但我不知道在pythonapi中引用哪个函数。有谁能给我举一些例子,或者告诉我用pyspark实现目标的另一种方法吗


还有一个类似的问题,但是这个解决方案是在scala中,而我想在python中解决它,因为我发现无法在pyspark中直接与HDFS通信。

可能重复@shekhar,是的,目标完全相同,但我想要一个python而不是scala中的解决方案,你知道吗?