PySpark-使用PySpark连接到HBASE-程序包导入失败

时间:2019-04-07 08:31:30

标签: apache-spark pyspark hbase

使用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

中找到软件包
  • HDP版本:2.6.4.0-91
  • Spark版本:2.2.0.2.6.4.0-91
  • Python:2.7.5
  • 使用的瓶子:/usr/hdp/2.6.4.0-91/shc/shc-core-1.1.0.2.6.4.0-91.jar

我尝试使用pyspark --jars /usr/hdp/2.6.4.0-91/shc/shc-core-1.1.0.2.6.4.0-91.jar

导入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的模块

1 个答案:

答案 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()