PySpark:saveAsNewAPIHadoopDataset() 可以用作批量加载到 HBase 吗?

2023-12-19

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

该函数是否通过mapreduce使用HBase批量加载功能?换句话说,直接导入HBase的saveAsNewAPIHadoopDataset()是否相当于使用saveAsNewAPIHadoopFile()将Hfile写入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 and RDD.saveAsNewAPIHadoopFile做几乎同样的事情。他们的 API 只是有点不同。每个都提供了不同的“机制与政策”选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PySpark:saveAsNewAPIHadoopDataset() 可以用作批量加载到 HBase 吗? 的相关文章

随机推荐