Python PySpark:saveAsNewAPIHadoopDataset()能否用作HBase的大容量加载?

Python PySpark:saveAsNewAPIHadoopDataset()能否用作HBase的大容量加载?,python,hadoop,apache-spark,hbase,bulkloader,Python,Hadoop,Apache Spark,Hbase,Bulkloader,目前,我们使用saveAsNewAPIHadoopDataset()通过Spark RDD(pyspark)将数据导入HBase表 此功能是否通过mapreduce使用HBase批量加载功能?换句话说,直接导入HBase的saveAsNewAPIHadoopDataset()是否等同于使用saveAsNewAPIHadoopFile()将Hfiles写入HDFS,然后调用org.apache.hadoop.HBase.mapreduce.LoadIncrementalHFiles加载到HBase

目前,我们使用saveAsNewAPIHadoopDataset()通过Spark RDD(pyspark)将数据导入HBase表

此功能是否通过mapreduce使用HBase批量加载功能?换句话说,直接导入HBase的saveAsNewAPIHadoopDataset()是否等同于使用saveAsNewAPIHadoopFile()将Hfiles写入HDFS,然后调用org.apache.hadoop.HBase.mapreduce.LoadIncrementalHFiles加载到HBase

下面是我们的HBase加载例程的示例片段:

conf = {"hbase.zookeeper.quorum": config.get(gethostname(),'HBaseQuorum'),
        "zookeeper.znode.parent":config.get(gethostname(),'ZKznode'),
        "hbase.mapred.outputtable": table_name,
        "mapreduce.outputformat.class": "org.apache.hadoop.hbase.mapreduce.TableOutputFormat",
        "mapreduce.job.output.key.class": "org.apache.hadoop.hbase.io.ImmutableBytesWritable",
        "mapreduce.job.output.value.class": "org.apache.hadoop.io.Writable"}

keyConv = "org.apache.spark.examples.pythonconverters.StringToImmutableBytesWritableConverter"
valueConv = "org.apache.spark.examples.pythonconverters.StringListToPutConverter"

spark_rdd.saveAsNewAPIHadoopDataset(conf=conf,keyConverter=keyConv,valueConverter=valueConv)

不完全是
RDD.saveAsNewAPIHadoopDataset
RDD.saveAsNewAPIHadoopFile
做的几乎相同。他们的API只是有点不同。每个都提供了不同的“机制与策略”选择。

谢谢您的回答!嘿,你能接受我的回答吗?那太棒了!