2017-01-04 19 views
0

を使用してカサンドラは、Apache Cassandraの3.7 をApacheのスパークのJavaコネクタを使用してカサンドラDBから行を削除し、Apacheはカサンドラ2.11のためのJavaコネクタをスパーク(2.0.0-M3)が、私はApacheは2.0スパーク使用していますキー列

私が欲しいですキー列の値に基づいてカサンドラのテーブルから少数の行を削除します。データセットを使用し、Apache Spark Java Connector for Cassandraを使用してそれを行うにはどうすればよいですか?私は自分のコードでSparkSessionを使用しています。提案してください。これを行うための他の方法があるなら、それを私に知らせてください。 Javaを使ってやりたい

ありがとうございます。

答えて

2

機能カサンドラレコードを削除するための機能deleteFromCassandra()は、新しいカサンドラコネクタリリースで使用されています。詳細についてはSPARKC-349SPARKC-392を確認してください。

Cassandra Connectorを使用してCassandraから行を削除するには、以下のようにします。例えば、テーブルにid UUID PRIMARY KEY, username TEXTのような列があるとします。今私はusernameが "Mat"に等しいすべての行を削除したいと思います。これを行うには、Cassandra Connectorからセッションを取得し、削除クエリを実行します。

dataset.where(dataset.col("username").equalTo("Mat")).foreachPartition(partition -> { 
Session session = connector.openSession(); 
     while (partition.hasNext()) { 
      Row row = partition.next(); 
      String id = (String) row.get(0);//UUID is at index 0 
      String delete = "DELETE FROM mykeyspace.mytable where id=" + id + ";"; 
      session.execute(delete); 
     } 
     session.close(); 
    }); 
関連する問題