Spark:在通过读取输入文件进行HBase批量删除时,出现类型不匹配错误

时间:2018-10-29 11:02:18

标签: scala apache-spark hbase

我正在使用Spark读取压缩文件

val prsTypeDetails = sqlContext.read.load(inputPath)

并通过以下案例类为所有输入的删除记录准备Rdd

case class DEL_ROWKEY_DETAILS(ROWKEY: Array[Byte])

在此处准备Rdd:

val prsDelDetailsRdd = prsTypeDetails.map(record => { 

val rowKey = Bytes.toBytes(record.getString(0))              
new DEL_ROWKEY_DETAILS(ROWKEY = rowKey)}

并按如下所示调用hbaseBulkDelete。

HBaseHelper.hbaseBulkDelete(sc, prsDelDetailsRdd, tableName, batchSize)

下面是hbaseBulkDelete函数

def hbaseBulkDelete(sc: SparkContext, rdd: RDD[Array[Byte]], tableName: String, batchSize: Integer) {
    val table = TableName.valueOf(tableName)
    val hbaseContext = new HBaseContext(sc, conf)
    hbaseContext.bulkDelete[Array[Byte]](rdd, table, putRecord => new Delete(putRecord), batchSize)
  }

但是最后我遇到了如下的类型不匹配错误

found   : org.apache.spark.rdd.RDD[Any]
required: org.apache.spark.rdd.RDD[Array[Byte]]

请尽快帮助我。 我的pom.xml配置片段为:

groupId - org.apache.hbase
artifactId - hbase-spark
version - 2.0.0-alpha4

非常感谢您的帮助。

0 个答案:

没有答案