Не удалось найти ни одной операции для усеченной таблицы в KuduClient.
При удалении строк в kudu идентификаторы должны быть явно указаны.
Самый простой способ (с самым коротким кодом) сделать это, как упомянуто в документации , - это прочитать идентификатор (или все первичные ключи) как фрейм данных и передать его 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
Примечание : я использовал spark-2 с пакетом org.apache.kudu:kudu-spark2_2.11:1.6.0
для подключения куду