在寻找将DataFrame保存到Phoenix的正确方法很长时间之后,我注意到df.save()
方法实际上是由Spark {.x中的DataFrame.class
提供的。
当我使用时:
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>
,甚至根据phoenix_spark.html-->Spark setup从本地磁盘添加了phoenix-4.14.0-cdh5.14.2-client.jar
。
如果您知道如何解决此问题,请给我一些建议或您的pom.xml。