0
選択クエリに基づいていくつかのレコードを削除する方法はありますか?重複が表示されます、私はこのクエリを持ってスパークSQLのcassandraレコードの削除
、
Select min(id) from ID having count(*)>1
。それらのIDを取得して削除する必要があります。どのようにspark SQLでそれを行うことができますか?
選択クエリに基づいていくつかのレコードを削除する方法はありますか?重複が表示されます、私はこのクエリを持ってスパークSQLのcassandraレコードの削除
、
Select min(id) from ID having count(*)>1
。それらのIDを取得して削除する必要があります。どのようにspark SQLでそれを行うことができますか?
Spark SQLはDELETEをサポートしていません。
削除するIDの数が少ない場合は、スパークを通じてカサンドラドライバを使用して、代わりにそれを行うことができます。
import scala.collection.JavaConverters._
import scala.collection.JavaConversions._
import com.datastax.driver.core.{Cluster, Session, BatchStatement}
import com.datastax.driver.core.querybuilder.QueryBuilder
val cluster = Cluster.builder().addContactPoint(host_ip).build()
val session = cluster.connect(keyspace)
val idsToDelete = ... // perform your query and collect the ids
val queries = idsToDelete.map({ id => QueryBuilder.delete().from(keyspace, table).where(QueryBuilder.eq("id", id)) })
val batch = batchStatement().addAll(queries.asJava)
session.execute(batch)
cluster.close