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

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来设置 输出文件的个数。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值