首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

好程序员大数据教程分享TextFile分区问题

val rdd1 = sc.parallelize(List(2,3,4,1,7,5,6,9,8))

获取分区的个数:rdd1.partitions.length,在spark-shell中没有指定分区的个数获取的是默认分区数,除了这个外parallelize方法可以使用,指定几个分区就会有几个分区出现

val rdd1 = sc.textFile("hdfs://hadoop02:8020/word.txt",3).flatMap _.split('')).map((_,1)).reduceByKey(_+_)

textFile这个方法是有默认值就是2 除非改变loacl中的即默认值这个只要这个默认值小于2的话会使用小于默认的值

这个默认属性是有值的defaultMinPartitions

如果在textfile中传入了分区数,那么这个分区数可能相同也可能不同需要看底层计算!

下面就是分片了,这个就是为什么textfile传入的参数和实际输出的分区可能不符合的原因

总结:

在textFile中没有指定分区的情况下都是默认大小2,除非指定小于2的值

若在textFile中指定了分区,name切分文件工作,实际上是计算出多少切分大小即多少切分一下,然后将文件按照这个大小切分成多份,最后partition数就是切分文件的个数。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190627A0DJCR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券