spark中saveAsTextFile如何最终生成一个文件
来源:互联网 发布:万方数据库期刊检索页 编辑:程序博客网 时间:2024/05/17 07:30
原文地址:http://www.cnblogs.com/029zz010buct/p/4685173.html
-----------------------------------------------------------------------
一般而言,saveAsTextFile会按照执行task的多少生成多少个文件,比如part-00000一直到part-0000n,n自然就是task的个数,亦即是最后的stage的分区数。那么有没有办法最后只生成一个文件,而不是成百上千个文件了?答案自然是有办法。
在RDD上调用coalesce(1,true).saveAsTextFile(),意味着做完计算之后将数据汇集到一个分区,然后再执行保存的动作,显然,一个分区,Spark自然只起一个task来执行保存的动作,也就只有一个文件产生了。又或者,可以调用repartition(1),它其实是coalesce的一个包装,默认第二个参数为true。
事情最终就这么简单吗?显然不是。你虽然可以这么做,但代价是巨大的。因为Spark面对的是大量的数据,并且是并行执行的,如果强行要求最后只有一个分区,必然导致大量的磁盘IO和网络IO产生,并且最终执行reduce操作的节点的内存也会承受很大考验。Spark程序会很慢,甚至死掉。
这往往是初学Spark的一个思维陷阱,需要改变原先那种单线程单节点的思维,对程序的理解要转变多多个节点多个进程中去,需要熟悉多节点集群自然产生多个文件这种模式。
此外,saveAsTextFile要求保存的目录之前是没有的,否则会报错。所以,最好程序中保存前先判断一下目录是否存在。
-------------
更多的Java,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,教程,视频请访问:
http://www.cnblogs.com/zengmiaogen/p/7083694.html
- spark中saveAsTextFile如何最终生成一个文件
- spark saveAsTextFile保存到文件
- Spark saveAsTextFile
- spark saveAsTextFile
- spark--actions算子--saveAsTextFile
- 在BCB中如何生成一个EXE文件
- 如何生成一个bmp文件
- 如何生成一个bmp文件
- 如何生成一个arff文件
- spark 调用saveAsTextFile 报错NullPointerException
- 如何从Eclipse中导出可执行jar包,并最终生成exe可执行文件
- 如何从Eclipse中导出可执行jar包,并最终生成exe可执行文件
- spark生成json文件
- 【Spark Java API】Action(6)—saveAsTextFile、saveAsObjectFile
- spark算子flatMap与textFile、saveAsTextFile结合小案例
- spark的rdd.saveastextfile可以追加写入hdfs吗
- 3.4 Spark RDD Action操作5-saveAsTextFile、saveAsSequenceFile、saveAsObjectFile
- Spark算子[18]:saveAsTextFile、saveAsObjectFile 源码实例详解
- skewness以及数据去偏度
- c++第六次实验-项目一
- android studio混淆
- 我走过最长的路是你的套路——Android端微信支付填坑之路
- POJ1251 Jungle Roads
- spark中saveAsTextFile如何最终生成一个文件
- 【水】1021: Tom数-----ZZUOJ
- 图解http学习笔记6.HTTP首部(一)
- Java一次性递归解析json报文为Map(不使用第三方jar包)
- AndroidStudio导入项目一直卡在Building gradle project info
- tail查看文本末尾数据
- python安装及语法1
- 简单的基于Struts2的用户注册模块的实现
- 2017 JSCPC H(贪心,prim)