spark更改分区_用于小文件的spark重新分区数据

我对Spark非常新,我主要使用集群来实现并行化目的。我有一个100MB的文件,其中的每一行都通过一些算法进行处理,这是相当繁重和长时间的处理。用于小文件的spark重新分区数据

我想使用10节点群集并行处理。我知道块大小超过100MB,我试图重新分区textFile。如果我没有理解好,这repartition方法增加分区的数量:

JavaRDD input = sc.textFile(args[0]);

input.repartition(10);

的问题是,当我部署到集群中,只有一个节点被有效地处理。我怎样才能设法平行处理文件?

更新1:这里是我的​​命令:

/usr/bin/spark-submit --master yarn --class mypackage.myclass --jars

myjar.jar

gs://mybucket/input.txt outfile

更新2:分区后,基本上有两种操作:

JavaPairRDD int_input = mappingToPair(input);

JavaPairRDD output = mappingValues(int_input, option);

output.saveAsTextFile("hdfs://...");

其中mappingToPair(...)是

public JavaPairRDD mappingToPair(JavaRDD input){

return input.mapToPair(new PairFunction() {

public Tuple2 call(String line) {

String[] arrayList = line.split("\t", 2);

return new Tuple2(arrayList[0], arrayList[1]);

}

});

}

和mappingValues(...)是以下类型的方法:

public JavaPairRDD mappingValues(JavaPairRDD rdd, final String option){

return rdd.mapValues(

new Function() {

// here the algo processing takes place...

}

)

}

2016-12-14

Newben

+0

可能会添加更多代码来描述重新分区后发生的情况,否则问题不明确。 –

+0

也向我们展示了你已经启动的spark提交cmd。 –

+0

@UmbertoGriffo这里的命令是 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值