私のローカルマシンでいくつかのレンジクエリを実行するためのデータ(52GB)を準備しています。カッサンドラが私のデータを期待通りに持っていない
私のデータはBSONファイルです。私はそれをrdd/dataFrameを起動するように変換し、クイックレンジクエリのためにCassandraと書いています。
私が持っていたデータには、選択するユニークな範囲がありません。したがって、monotically_increase()
を呼び出して固有のrddデータフレームにcolumn(idx)
を追加し、それをCassandraに書き込みました。
しかし、カサンドラはidx値を非常に大きなものに上書きしています。
train_df = train_df.withColumn("idx", monotonically_increasing_id())
try:
#"CREATE TABLE t (pk int, t int, v text, s text, PRIMARY KEY (pk, t));
create_table = "CREATE TABLE train (idx BIGINT, cid BIGINT, img BLOB, PRIMARY KEY (idx, cid));"
session.execute(create_table)
except:
print("create table train failed")
train_df.write\
.format("org.apache.spark.sql.cassandra")\
.mode('append') \
.option("table", "train") \
.option("keyspace", "komal")\
.save()
Any query indexing above 5000 is returing empty list
query = "select * from train where idx > 5000 and idx <= 6000 ALLOW FILTERING;"
result = session.execute(query, timeout=50000000)
result.current_rows
[]
カサンドラに列を追加する方法は、ユニークにすることができますので、範囲のクエリを実行できますか?