火花连接凤凰号NoSuchMethod Exception

时间:2017-01-05 21:20:01

标签: apache-spark phoenix

我正在尝试通过Spark / Scala连接到Phoenix来读取和写入数据作为DataFrame。我正在关注GitHub上的示例,但是当我尝试第一个示例使用数据源API加载为DataFrame 时,我得到以下异常。

  

线程中的异常" main" java.lang.NoSuchMethodError:org.apache.hadoop.hbase.client.Put.setWriteToWAL(Z)Lorg / apache / hadoop / hbase / client / Put;

有些事情让我对这些例子感到疯狂:

1)导入语句import org.apache.phoenix.spark._在我的代码中给出了以下异常:

  

无法解析符号凤凰

我在我的sbt

中包含了以下jars
"org.apache.phoenix" % "phoenix-spark" % "4.4.0.2.4.3.0-227" % Provided,
"org.apache.phoenix" % "phoenix-core" % "4.4.0.2.4.3.0-227" % Provided,

2)我收到符号加载的弃用警告。enter image description here

我用Google搜索了该警告,但没有得到任何参考,我无法找到任何建议方法的示例。我无法找到任何其他有关如何连接凤凰城的指南。谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

请使用.read代替加载,如下所示

val df = sparkSession.sqlContext.read
        .format("org.apache.phoenix.spark")
        .option("zkUrl", "localhost:2181")
        .option("table", "TABLE1").load()

答案 1 :(得分:1)

回答很晚但是我在解决类似问题时所采取的措施(找不到不同的方法和弃用警告):

1。)关于NoSuchMethodError:我从hbase安装lib文件夹中取出所有罐子并将其添加到您的项目中。还添加了pheonix spark jar。确保使用兼容版本的spark和pheonix spark.Spark 2.0+兼容用pheonix-spark-4.10 + maven-central-link。这解决了NoSuchMethodError

2.。)关于load - load方法早已被弃用。使用sqlContext.phoenixTableAsDataFrame.For参考这个Load as a DataFrame directly using a Configuration object