2017-02-17 47 views
1

我写下面的代码保存火花数据帧到phonenix:无法保存火花数据帧在凤凰

phoenix_df.write.format(“org.apache.phoenix.spark”)模式(SaveMode.Overwrite)。选项(图( “表” - > “TEST”, “zkUrl” - > “defabc10d”))。保存()

使用火花1.6.0。

然而,作业与以下错误而失败:

java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HTableDescriptor.setValue(Ljava /郎/字符串; Ljava /郎/字符串;)Lorg /阿帕奇/ Hadoop的/ HBase的/ HTableDescriptor

请提供一些解决方案是任何人都面临着同样的问题?

回答

1

看起来你的凤凰连接器是针对HBase的客户端(例如V1.3)的特定版本构建,但在CDH捆绑HBase的客户是不同的版本(V1.2),并有打破API的变化。

  1. 找出哪些HBase的客户端是由你的凤凰连接器所需
  2. 下载从HortonWorks repo
  3. 客户端添加这些自定义的JAR文件到您的驱动器/执行人CLASSPATH,就像你与凤凰网连接器做了(如--jars
  4. 确保您的自定义JAR文件覆盖默认的Cloudera HBase的客户端--conf spark.yarn.user.classpath.first=true
+0

参孙您好,感谢您的帮助。 – user7437747