Apache spark 使用Pyspark并行Hbase扫描

Apache spark 使用Pyspark并行Hbase扫描,apache-spark,hbase,pyspark,Apache Spark,Hbase,Pyspark,我的Hbase行键:user+“-”+时间戳,其中user是用户的名称。同一用户可以在rowkey中有多个具有不同时间戳的条目 用例:为用户列表中的每个用户选择用户+“\u”+时间戳\u开始到用户+“\u”+时间戳\u结束之间的HBase记录 时间戳_开始

我的Hbase行键:user+“-”+时间戳,其中user是用户的名称。同一用户可以在rowkey中有多个具有不同时间戳的条目

用例:为用户列表中的每个用户选择用户+“\u”+时间戳\u开始到用户+“\u”+时间戳\u结束之间的HBase记录

时间戳_开始<时间戳_结束

正在运行但已在用户上序列化的当前实现:

users=[user1,user2,…]#3000万用户
sc=SparkContext()
conf=dict()
对于用户中的用户:
#这里有一些配置参数
conf[“hbase.mapreduce.scan.row.start”]=user+“-”+str(时间戳\u start)
conf[“hbase.mapreduce.scan.row.stop”]=user+“-”+str(时间戳_end)
hbase_rdd=sc.newAPIHadoopRDD(
“org.apache.hadoop.hbase.mapreduce.TableInputFormat”,
“org.apache.hadoop.hbase.io.ImmutableBytesWritable”,
“org.apache.hadoop.hbase.client.Result”,
keyConverter=keyConv,
valueConverter=valueConv,
conf=conf)#此conf与上面创建的conf相同

有没有办法通过主观地为每个用户指定起始行和结束行来并行化用户列表上的Hbase扫描,因为完整扫描需要花费大量时间来处理?

您知道扫描需要在多少个区域上运行吗?如果您尝试扫描的所有数据都在一个区域中,则它将在RDD中只创建一个分隔,因为它从一台服务器加载数据。您知道您的扫描需要在多少个区域上运行吗?如果您试图扫描的所有数据都在一个区域中,那么它将在RDD中只创建一个分隔,因为它从一个服务器加载数据。