Spark:对从HBase数据创建的RDD进行分区

时间:2016-05-05 13:18:06

标签: java apache-spark hbase rdd

如果我使用

从HBase(或MapR-DB)表中读取一些数据
JavaPairRDD<ImmutableBytesWritable, Result> usersRDD = sc.newAPIHadoopRDD(hbaseConf, TableInputFormat.class, ImmutableBytesWritable.class, Result.class);

生成的RDD有1个分区,我可以看到调用usersRDD.partitions().size()。使用像usersRDD.repartition(10)这样的东西是不可行的,因为Spark抱怨因为ImmutableBytesWritable不可序列化。

有没有办法让Spark从HBase数据创建分区RDD?

1 个答案:

答案 0 :(得分:0)

使用org.apache.hadoop.hbase.mapreduce.TableInputFormat时的Spark分区数取决于HBase表的区域数 - 在您的情况下为1(默认值)。有关详细信息,请查看my answer to a similar question