Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python spark/pyspark与HBase的集成_Python_Apache Spark_Hadoop_Pyspark_Hbase - Fatal编程技术网

Python spark/pyspark与HBase的集成

Python 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 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 --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核心版本(