PySpark: можно ли использовать saveAsNewAPIHadoopDataset() для массовой загрузки в HBase?

В настоящее время мы импортируем данные в таблицы 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)

person kentt    schedule 24.08.2015    source источник


Ответы (1)


Не совсем. RDD.saveAsNewAPIHadoopDataset и RDD.saveAsNewAPIHadoopFile делают почти одно и то же. Их API немного отличается. Каждый из них предлагает свой выбор «механизм или политика».

person Brandon Bradley    schedule 02.11.2015
comment
Спасибо за ответ! - person kentt; 03.11.2015
comment
Эй, ты можешь принять мой ответ? Это было бы круто! - person Brandon Bradley; 26.09.2018