5

私は私のスパークストリーミングプログラムで処理されるストリーミングデータを受信し、各インターバルの出力が私の既存のカッサンドラテーブル。java.lang.UnsupportedOperationException: '空ではないCassandraテーブルへの書き込みは許可されていません

現在、私のスパークストリーミングプログラムは、私のcassandraテーブルに保存する必要があるデータフレームを生成します。私は現在直面してる問題は私がコマンド

私は彼が=「APPEND」モードを通過したリンク http://rustyrazorblade.com/2015/08/migrating-from-mysql-to-cassandra-using-spark/を以下に読んでいた
dff.write.format("org.apache.spark.sql.cassandra").options(Map("table" -> "xxx", "yyy" -> "retail")).save() 

の下に使用したときに、私の既存のカサンドラ・テーブルにデータ/行を追加することはできませんよですSaveメソッドが、その投げ構文エラーも

に私は私の火花を書くこのissue.I'mを解決する方法として、ヘルプが必要です以下のリンク https://groups.google.com/a/lists.datastax.com/forum/#!topic/spark-connector-user/rlGGWQF2wnM

から修正する必要がありますかを理解するのntことができましたスカラーでストリーミングジョブ

答えて

8

は、私はあなたがそれを次のように行う必要があると思う:

dff.write.format("org.apache.spark.sql.cassandra").mode(SaveMode.Append).options(Map("table" -> "xxx", "yyy" -> "retail")).save() 

カサンドラは、あなたがいわゆる「アップサート」を行うためにデータ力を処理する方法を - あなたは、挿入行の一部を上書きすることを忘れてはいけませんすでに格納されているレコードの主キーは、挿入されたreccordの主キーと同じです。カサンドラは「書き込みが速い」データベースなので、書き込み前にデータの存在をチェックしません。

関連する問題