我在Spark和Scala中有这样的功能:
import org.apache.kudu.client.CreateTableOptions
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
import org.apache.spark.sql.{DataFrame, Dataset, Encoders, SparkSession}
import org.apache.kudu.spark.kudu._
def save(df: DataFrame): Unit ={
val kuduContext: KuduContext = new KuduContext("quickstart.cloudera:7051")
kuduContext.createTable(
"test_table", df.schema, Seq("anotheKey", "id", "date"),
new CreateTableOptions()
.setNumReplicas(1))
kuduContext.upsertRows(df, "test_table")
}但是,当试图创建kuduContext时会引发一个异常:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.kudu.client.KuduClient.exportAuthenticationCredentials()[B
at org.apache.kudu.spark.kudu.KuduContext.<init>(KuduContext.scala:63)
at com.mypackge.myObject$.save(myObject.scala:24)
at com.mypackge.myObject$$anonfun$main$1.apply$mcV$sp(myObject.scala:59)
at com.mypackge.myObject$$anonfun$main$1.apply(myObject.scala:57)
at com.mypackge.myObject$$anonfun$main$1.apply(myObject.scala:57)
at com.mypackge.myObject$.time(myObject.scala:17)
at com.mypackge.myObject$.main(myObject.scala:57)
at com.mypackge.myObject.main(myObject.scala)火花工作没有任何问题。我已经安装了在官方文件上描述的kudu,并且我已经从bash登录到impala实例,没有问题。
有人知道我做错了什么吗?
发布于 2017-03-22 11:19:02
问题是使用旧版本的kudu-client (1.2.0)的项目的依赖性,当时我使用的是kudu-火花1.3.0 (其中包括kudu-client 1.3.0)。将kudu客户从pom.xml中排除在外是解决方案。
https://stackoverflow.com/questions/42947189
复制相似问题