Python spark/pyspark与HBase的集成
是否可以将Spark 2.4.3连接到远程HBase 1.3.2服务器 我已尝试使用此版本: 但似乎存在一个兼容性问题: java.lang.NoSuchMethodError:org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValuePython spark/pyspark与HBase的集成,python,apache-spark,hadoop,pyspark,hbase,Python,Apache Spark,Hadoop,Pyspark,Hbase,是否可以将Spark 2.4.3连接到远程HBase 1.3.2服务器 我已尝试使用此版本: 但似乎存在一个兼容性问题: java.lang.NoSuchMethodError:org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue spark-submit --packages com.hortonworks:shc-core:1.1.1-2.1-s_2.11 --rep
spark-submit --packages com.hortonworks:shc-core:1.1.1-2.1-s_2.11 --repositories http://repo.hortonworks.com/content/groups/public/ /hbase-read.py
read.py只是一个简单的测试读本:
from pyspark.sql import SQLContext, SparkSession
spark = SparkSession \
.builder \
.appName("test") \
.enableHiveSupport() \
.getOrCreate()
sc = spark.sparkContext
sqlc = SQLContext(sc)
data_source_format='org.apache.spark.sql.execution.datasources.hbase'
catalog = ''.join("""{
"table":{"namespace":"default", "name":"testtable"},
"rowkey":"key",
"columns":{
"col0":{"cf":"rowkey", "col":"key", "type":"string"},
"col1":{"cf":"cf", "col":"col1", "type":"string"}
}
}""".split())
df = sqlc.read.options(catalog=catalog).format(data_source_format).load()
df.show()
我知道这个shc核心版本可以与Spark 2.3.3配合使用,但是我的2.4+的替代选项是什么
我已从源代码中使用shc核心构建,但当我引用jar时,收到以下错误:
原因:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.client.TableDescriptor
尽管我已经引用了所有必要的jar:
spark-submit --jars /shc/core/target/shc-core-1.1.3-2.4-s_2.11.jar,/hbase-jars/hbase-client-1.3.2.jar /hbase-read.py
1) 是否可以将Spark 2.4.3连接到远程HBase 1.3.2服务器?
是的,这是可能的。您可以使用Hbase客户端或
同时使用shc内核
2) java.lang.NoSuchMethodError:org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue强>
这意味着还有一个不同版本的json4s jar。检查
完整堆栈跟踪。它是从哪个班级被调用的。移除
额外的罐子
3) 原因:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.client.TableDescriptor
此jar shc-core-1.1.3-2.4-s_2.11.jar在中使用hbase版本>=2.0
引入了哪个TableDescriptor类。在Hbase 1.3.2中
版本没有这样的类,而是有HTableDescriptor。如果你
希望使用最新的shc核心版本,您必须使用hbase
版本>=2.0,如果您的hbase版本<2.0,请使用兼容的
shc核心版本(1)是否可以将Spark 2.4.3连接到远程HBase 1.3.2服务器?
是的,这是可能的。您可以使用Hbase客户端或
同时使用shc内核
2) java.lang.NoSuchMethodError:org.json4s.jackson.JsonMethods$.parse(Lorg/json4s/JsonInput;Z)Lorg/json4s/JsonAST$JValue强>
这意味着还有一个不同版本的json4s jar。检查
完整堆栈跟踪。它是从哪个班级被调用的。移除
额外的罐子
3) 原因:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.client.TableDescriptor
此jar shc-core-1.1.3-2.4-s_2.11.jar在中使用hbase版本>=2.0
引入了哪个TableDescriptor类。在Hbase 1.3.2中
版本没有这样的类,而是有HTableDescriptor。如果你
希望使用最新的shc核心版本,您必须使用hbase
版本>=2.0,如果您的hbase版本<2.0,请使用兼容的
shc核心版本(