Я хочу выгрузить данные в таблицу HBase из фрейма данных, используя код Spark scala. Я попытался использовать HBaseTableCatalog.
Добавлены следующие зависимости:
shc -core-1.1.0.3.1.5.6-1.jar
hbase библиотеки ( HBase-client.jar, HBase-common.jar, HBase-protocol.jar, HBase-server.jar, HBase-spark.jar, HBase-shaeded * .jar, htrace-жильный, HBase-mapreduce.jar, был oop -mapreduce-client-core- {version} .jar)
Ниже приведен код:
case class HBaseRecord(col0: String, col1: String, col2: String)
val catalog = s"""{
"table":{"namespace":"default", "name":"shcExampleTable", "tableCoder":"PrimitiveType"},
"rowkey":"key",
"columns":{
"col0":{"cf":"rowkey", "col":"key", "type":"string"},
"col1":{"cf":"cf1", "col":"col1", "type":"string"},
"col2":{"cf":"cf2", "col":"col2", "type":"string"}
}
}""".stripMargin
val AFINN = sc.textFile("hdfs://sandbox-hdp.hortonworks.com:8020/Input/AFINN1.txt").map(x=> x.split("\t")).map(x => HBaseRecord(x(0).toString,x(1).toString,x(2).toString))
val AFINNDF = AFINN.toDF("col0","col1","col2")
AFINNDF.createOrReplaceTempView("rating")
val DF = AFINNDF.select($"col0",$"col1",$"col2")
DF.write.options(Map(HBaseTableCatalog.tableCatalog -> catalog, HBaseTableCatalog.newTable -> "4")).format("org.apache.spark.sql.execution.datasources.hbase").save()
Выдает ошибку ниже:
java .lang .NoClassDefFoundError: org / apache / hadoop / hbase / mapreduce / TableOutputFormat
at org. apache .spark. sql .execution.datasources.hbase.HBaseRelation.insert (HBaseRelation. scala: 230)
at org. apache .spark. sql .execution.datasources.hbase.DefaultSource.createRelation (HBaseRelation. scala: 65)
Я уже добавил, что oop -mapreduce * .jar уже добавлен по-прежнему это ошибка. Какая библиотека нужна для TableOutputFormat?
Спасибо,