使用PySpark连接到HBASE时遇到问题,因为它失败并显示以下错误:
py4j.protocol.Py4JJavaError:调用o42.load时发生错误。 :java.lang.ClassNotFoundException:无法找到数据源:org.apache.spark.sql.execution.datasources.hbase。请在http://spark.apache.org/third-party-projects.html
中找到软件包
我尝试使用pyspark --jars /usr/hdp/2.6.4.0-91/shc/shc-core-1.1.0.2.6.4.0-91.jar
它会在提示符下进入PySpark的shell,但是当我尝试连接到HBASE时,它会失败,并出现上述错误。
已执行示例代码:
Using Python version 2.7.5 (default, May 31 2018 09:41:32)
SparkSession available as 'spark'.
>>> catalog = ''.join("""{'table': {'namespace': 'default','name': 'books'},'rowkey': 'key','columns': {'title': {'cf': 'rowkey', 'col': 'key', 'type': 'string'},'author': {'cf': 'info', 'col': 'author', 'type': 'string'}}}""".split())
>>>
>>> df = sqlContext.read.options(catalog=catalog).format('org.apache.spark.sql.execution.datasources.hbase').load()
失败,并显示以下错误: 追溯(最近一次通话): 文件“”,第1行,位于 ImportError:没有名为org.apache.spark.sql.execution.datasources.hbase的模块
答案 0 :(得分:0)
尝试使用上述here中的 --packages
和 --repositories
自变量。
bash$ export SPARK_MAJOR_VERSION=2
bash$ pyspark --packages com.hortonworks:shc-core:1.1.1-2.1-s_2.11 --repositories http://repo.hortonworks.com/content/groups/public/
>>> from pyspark.sql.functions import *
>>> from pyspark.sql.types import *
>>> spark = SparkSession \
.builder \
.enableHiveSupport() \
.getOrCreate()
>>> catalog = ''.join("""{'table': {'namespace': 'default','name': 'books'},'rowkey': 'key','columns': {'title': {'cf': 'rowkey', 'col': 'key', 'type': 'string'},'author': {'cf': 'info', 'col': 'author', 'type': 'string'}}}""".split())
>>> df=spark.read.options(catalog=catalog,newtable=5).format("org.apache.spark.sql.execution.datasources.hbase").load()