在非 Spark 程序中,您使用 KUDU 客户端来访问 KUDU。使用 Spark 应用程序,您可以为该 KUDU 集群使用已经具有此类客户端的 KUDU 上下文。
简单的 JAVA 程序需要使用 JAVA API 和 maven 方法的 KUDU 客户端。
KuduClient kuduClient = new KuduClientBuilder("kudu-master-hostname").build();
见http://harshj.com/writing-a-simple-kudu-java-api-program/
Spark / Scala 程序,其中许多程序可以使用 Spark KUDU 集成在同一个集群上同时运行。Snippet 从官方指南借来的,因为很久以前我看过这个。
import org.apache.kudu.client._
import collection.JavaConverters._
// Read a table from Kudu
val df = spark.read
.options(Map("kudu.master" -> "kudu.master:7051", "kudu.table" -> "kudu_table"))
.format("kudu").load
// Query using the Spark API...
df.select("id").filter("id >= 5").show()
// ...or register a temporary table and use SQL
df.registerTempTable("kudu_table")
val filteredDF = spark.sql("select id from kudu_table where id >= 5").show()
// Use KuduContext to create, delete, or write to Kudu tables
val kuduContext = new KuduContext("kudu.master:7051", spark.sparkContext)
// Create a new Kudu table from a dataframe schema
// NB: No rows from the dataframe are inserted into the table
kuduContext.createTable("test_table", df.schema, Seq("key"),
new CreateTableOptions()
.setNumReplicas(1)
.addHashPartitions(List("key").asJava, 3))
// Insert data
kuduContext.insertRows(df, "test_table")
见https://kudu.apache.org/docs/developing.html