После долгого поиска правильного способа сохранения DataFrame в Phoenix я заметил, что метод df.save()
фактически предоставляется DataFrame.class
в Spark1.x.
Когда я использую:
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-4.14.0-cdh5.14.2-client.jar
с локального диска в соответствии с phoenix_spark.html -> Spark setup .
Если вы знаете, как решить эту проблему, пожалуйста, дайте мне несколько советов или ваш pom.xml.