spark connecting to Phoenix NoSuchMethod Exception

纵然是瞬间 提交于 2019-12-12 04:21:49

问题


I am trying to connect to Phoenix through Spark/Scala to read and write data as a DataFrame. I am following the example on GitHub however when I try the very first example Load as a DataFrame using the Data Source API I get the below exception.

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Put.setWriteToWAL(Z)Lorg/apache/hadoop/hbase/client/Put;

There are couple of things that are driving me crazy from those examples:

1)The import statement import org.apache.phoenix.spark._ gives me below exception in my code:

cannot resolve symbol phoenix

I have included below jars in my sbt

"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) I get the deprecated warning for symbol load.

I googled about that warnign but didn't got any reference and I was not able to find any example of the suggested method. I am not able to find any other good resource which guides on how to connect to Phoenix. Thanks for your time.


回答1:


please use .read instead of load as shown below

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



回答2:


Its late to answer but here's what i did to solve a similar problem(Different method not found and deprecation warning):

1.) About the NoSuchMethodError: I took all the jars from hbase installation lib folder and add it to your project .Also add pheonix spark jars .Make sure to use compatible versions of spark and pheonix spark.Spark 2.0+ is compatible with pheonix-spark-4.10+ maven-central-link.This resolved the NoSuchMethodError

2.) About the load - The load method has long since been deprecated .Use sqlContext.phoenixTableAsDataFrame.For reference see this Load as a DataFrame directly using a Configuration object



来源:https://stackoverflow.com/questions/41494873/spark-connecting-to-phoenix-nosuchmethod-exception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!