从Spark截断Kudu表的最佳方法是什么?是否有SQL" Truncate Table_name"的类似物;或"删除talbe_name;"?
我刚刚设法找到了kuducontext.deleterows,但是它需要明确的规范行才能删除。
,或者我应该使用kuduclient而不是火花?
我找不到任何截短表的操作。使用Kudu删除行,必须明确提及IDS。
如文档中提到的最简单的方法(最短代码(是将ID(或所有主要键(读取的DataFrame,然后将其传递给KuduContext.deleteRows
。
import org.apache.kudu.spark.kudu._
val kuduMasters = Seq("kudu_ubuntu:7051").mkString(",")
val tableName = "test_tbl"
val kuduContext = new KuduContext(kuduMasters, sc)
val df = spark.sqlContext.read.
options(Map("kudu.master" -> kuduMasters,
"kudu.table" -> tableName)).
kudu
val idToDelete = df.select("no") // contains ids for existing rows.
kuduContext.deleteRows(idToDelete, tableName) // delete rows
NOTE :我将Spark-2与package org.apache.kudu:kudu-spark2_2.11:1.6.0
一起用于kudu Connection