java面试题网站:www.javaoffers.com
业务需求: 有事我们从hdfs上用spark 进行处理,很有可能 在hdfs 有多个block ,spark就会默认有多少个分区,在经过我们自己的逻辑计算后,得到的最后的结果数据并不是很大,同时想把它输出为一个文件,同理相反 想把她输出为多个文件,这时 repartition( num ) 就可以解决:
demo:
scala> var a = sc.parallelize(List(1,2,3,45,6,7,23),4)
scala> var b = a.repartition(1)
scala> b.partitions.length
res3: Int = 1 输出为1
demo2:
scala> var a = sc.parallelize(List(3,45,7,7,8,2),8)
scala> a.partitions.length
res4: Int = 8
scala> var a = sc.parallelize(List(3,45,7,7,8,2),8)
scala> var b = a.repartition(1)
scala> b.partitions.length
res4: Int = 1
spark默认会根据分区来决定输出文件的多少。所以我们可以用repartition来设置 输出文件的个数。
版权声明:本文为qq_29499107原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。