如果我使用
从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?
答案 0 :(得分:0)
使用org.apache.hadoop.hbase.mapreduce.TableInputFormat
时的Spark分区数取决于HBase表的区域数 - 在您的情况下为1(默认值)。有关详细信息,请查看my answer to a similar question。