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

业务需求: 有事我们从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来设置 输出文件的个数。

你可能感兴趣的:(sparkAPI使用案例)