私はspark cassandraコネクタ1.2.3でspark 1.2を使用しています.テーブルの一部の行を更新しようとしています:
例:
CREATE TABLE myTable (
a text,
b text,
c text,
date timestamp,
d text,
e text static,
f text static,
PRIMARY KEY ((a, b, c), date, d)
) WITH CLUSTERING ORDER BY (date ASC, d ASC)
val interactions = sc.cassandraTable[(String, String, String, DateTime, String, String)]("keySpace", "myTable").
select("a","b","c","date", "d", "e","f")
val empty = interactions.filter(r => r._6 == null).cache()
empty.count()
「e」のnullを含む行の数を数え、「b」の値でそれらを置き換えます
val update_inter = empty.map( r => (r._1,r._2, r._3, r._4, r._5, r._2))
update_inter.saveToCassandra("keySpace", "myTable", SomeColumns("a","b","c","date", "d", "e", "f"))
これは cqlsh でチェックインすると機能しますが、spark cassandra で同じ行を要求すると値 null が返されます。
これは spark cassandra コネクタのバグですか? ご協力いただきありがとうございます。