Apache spark 如何使用df.saveToPhoenix()将数据帧保存到phoenix表?

Apache spark 如何使用df.saveToPhoenix()将数据帧保存到phoenix表?,apache-spark,apache-spark-sql,hbase,bigdata,phoenix,Apache Spark,Apache Spark Sql,Hbase,Bigdata,Phoenix,在寻找将数据帧保存到Phoenix的正确方法很长时间后,我注意到Spark1.x中的DataFrame.class实际上提供了df.save()方法 当我使用: df.saveToPhoenix( store_table, zkUrl = Some(hconnection) ) 我得到了一个错误: Exception in thread "main" java.lang.NoSuchMethodError: org.apache.phoenix.spark.packag

在寻找将数据帧保存到Phoenix的正确方法很长时间后,我注意到Spark1.x中的
DataFrame.class
实际上提供了
df.save()
方法

当我使用:

df.saveToPhoenix(
      store_table,
      zkUrl = Some(hconnection)
)
我得到了一个错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.phoenix.spark.package$.toDataFrameFunctions(Lorg/apache/spark/sql/Dataset;)Lorg/apache/phoenix/spark/DataFrameFunctions;
    at com.***.data.process.phoenix.PhoenixToHBase$.main(PhoenixToHBase.scala:63)
    at com.***.data.process.phoenix.PhoenixToHBase.main(PhoenixToHBase.scala)
我想这些罐子之间可能有冲突,或者我错过了一些罐子

我已经编写了这些依赖项:

<dependency>
   <groupId>org.apache.phoenix</groupId>
   <artifactId>phoenix-spark</artifactId>
   <version>4.14.0-cdh5.12.2</version>
</dependency>

<dependency>
   <groupId>org.apache.phoenix</groupId>
   <artifactId>phoenix-core</artifactId>
   <version>4.14.0-cdh5.12.2</version>
</dependency>

org.apache.phoenix
.

如果您知道如何解决这个问题,请给我一些建议或您的pom.xml。

您的Spark版本是什么?根据链接,您包括了phoenix 4.10和更高版本与spark 2.x兼容。我更改了这些JAR的版本,并最终解决了问题。将“4.14.0-cdh5.12.2”更改为“4.14.0-HBase-1.2”,Spark的版本为“2.3.0”