spark 程序如何指定输出文件的文件名?网上都是 x.repartition(1).saveAsTextFile("a.txt"),但这是新建了一个 a.txt目录,请问如何输出 a.txt文件?
使用pairRDD.saveAs...方法,然后重写OutputFormat输出格式,修改该格式中的方法,就OK了
文件存在hdfs了吧,从hdfs再导出到本地操作系统,你是想说的这个意思吧
不会吧,这就是创建了一个文件。saveAsTextFile 你看这个方法的名字,你觉得这是创建文件夹吗。。我之前也写过这种的WordCount,的Demo然后把结果存到文件里面,好像就是这样的呀
这个是没办法直接命名那个part-*文件的。除非改hadoop的源码(spark还是调用的hadoop的写文件方法)。原因是:如果你不写repartition(1),下面会生成一堆
你自己命名的文件,就会出现多文件重名的现象。
唯一能指定的就是spark输出的文件夹的文件名,不然你就要更改源码,可以通过写一个函数,在每次运行完spark程序后直接运行它不就完事了?
注意,是在调用完sparkcontext.stop和sparksession.stop之后运行,Java8的files函数相当好用