Spark 之 重新设置分区的个数repartition()。

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。