PySpark: saveAsNewAPIHadoopDataset()能被用作向HBase进行批量加载吗?

3
我们目前通过使用saveAsNewAPIHadoopDataset()函数(pyspark)通过Spark RDDs将数据导入HBase表中。
这个函数是否使用了HBase的mapreduce批量加载功能呢?换句话说,直接导入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)
1个回答

2

不完全正确。 RDD.saveAsNewAPIHadoopDatasetRDD.saveAsNewAPIHadoopFile 基本上是做同样的事情,只是它们的 API 有些许不同。每个函数提供了不同的“机制 vs 策略”选择。


谢谢你的回答! - kentt
嘿,你能采纳我的答案吗?那太棒了! - Brandon Bradley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接