В настоящее время мы импортируем данные в таблицы HBase через RDD Spark (pyspark) с помощью saveAsNewAPIHadoopDataset().
Использует ли эта функция функцию массовой загрузки HBase через mapreduce? Другими словами, будет ли saveAsNewAPIHadoopDataset(), который импортирует напрямую в HBase, эквивалентен использованию saveAsNewAPIHadoopFile() для записи H-файлов в 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)