擅长:python、mysql、java
<p>我想把这篇文章作为评论发表,但由于我没有足够的声誉而无法发表。<br/><br/>
您必须将RDD转换为dataframe,然后以追加模式写入。要将RDD转换为dataframe,请查看以下答案:<br/>
<a href="https://stackoverflow.com/a/39705464/3287419">https://stackoverflow.com/a/39705464/3287419</a><br/>
或者这个链接<a href="http://spark.apache.org/docs/latest/sql-programming-guide.html" rel="nofollow noreferrer">http://spark.apache.org/docs/latest/sql-programming-guide.html</a><br/>
要在下面的附加模式下保存数据帧,链接可能很有用:<br/>
<a href="http://spark.apache.org/docs/latest/sql-programming-guide.html#save-modes" rel="nofollow noreferrer">http://spark.apache.org/docs/latest/sql-programming-guide.html#save-modes</a></p>
<p>几乎相同的问题也在这里<a href="https://stackoverflow.com/questions/38663536/spark-saving-rdd-in-an-already-existing-path-in-hdfs">Spark: Saving RDD in an already existing path in HDFS</a>。但答案是针对scala的。我希望类似的事情也能在python中实现。<br/><br/></p>
<p>还有另一种方法(但很难看)。将RDD转换为字符串。让结果字符串为<code>resultString</code>。使用子进程将该字符串附加到目标文件,即</p>
<pre><code>subprocess.call("echo "+resultString+" | hdfs dfs -appendToFile - <destination>", shell=True)
</code></pre>