使用Java将spark RDD保存到本地文件系统

Kan*_*rma 5 java sql-server hdfs apache-spark rdd

我有一个使用Spark生成的RDD.现在,如果我将此RDD写入csv文件,我将获得一些方法,如"saveAsTextFile()",它将csv文件输出到HDFS.

我想将文件写入我的本地文件系统,以便我的SSIS进程可以从系统中选择文件并将它们加载到数据库中.

我目前无法使用sqoop.

除了编写shell脚本之外,它是否可以在Java中实现.

如果需要清晰,请告知.

Hol*_*den 12

saveAsTextFile能够接受本地文件系统路径(例如file:///tmp/magic/...).但是,如果您在分布式群集上运行,则很可能希望collect()将数据返回到群集,然后使用标准文件操作进行保存.

  • 好的.这个使用"file:///"传递参数的方法使用_SUCCESS文件成功返回,但是没有看到输出文件.我在分布式集群上运行它,但是我的数据非常多,调用collect()会限制JVM (3认同)
  • 如果您的数据对于驱动程序来说太大,那么您将需要将数据存储到 HDFS(或类似的分布式文件系统) - 或者如果您仍然真的想将其存储在驱动程序上然后使用 toLocalIterator(但请记住缓存RDD 之前)只需要与最大分区一样多的内存。 (2认同)
  • 在此答案中缺少使用标准文件操作保存此内容的代码。 (2认同)