spark篇2:spark通过KuduContext操作kudu
废话不多说,直接上干货
创建kudu表
package kudu.sparkKudu
import org.apache.kudu.spark.kudu.KuduContext
import org.apache.spark.sql.SparkSession
import org.apache.spark.{SparkConf, SparkContext}
object SparkKuduTest {
def main(args: Array[String]): Unit = {
val sparkSession = SparkSession.builder()
.master("local")
.appName("appName")
.config("spark.testing.memory","471859200")
.getOrCreate()
//构建KuduContext对象
val kuduContext = new KuduContext("cdh2:7051", sparkSession.sparkContext)
//1.创建表操作
createTable(kuduContext,"table_boy")
}
private def createTable(kuduContext: KuduContext, tableName: String): Unit = {
//定义表的schema
val schema = StructType(
StructField("id", IntegerType, false) ::
StructField("name", StringType, false) ::
StructField("age", IntegerType, false) :: Nil
)
val primaryKey = Seq("id")
//定义表的主键
val list: util.List[String] = new util.LinkedList[String]
list.add("id")
//定义表的选项配置
val options = new CreateTableOptions
options.setRangePartitionColumns(list)
options.setNumReplicas(1)
//创建表
if (!kuduContext.tableExists(tableName)) {
kuduContext.createTable(tableName, schema, primaryKey, options)
}
}
}