我正在使用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
非常感谢您的帮助。