我们目前使用saveAsNewAPIHadoopDataset()通过Spark RDDs (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)发布于 2015-11-03 00:53:51
不完全同意。RDD.saveAsNewAPIHadoopDataset和RDD.saveAsNewAPIHadoopFile做的几乎是一样的事情。他们的API只是有一点不同。每种方法都提供了不同的“机制与策略”选择。
https://stackoverflow.com/questions/32175634
复制相似问题