【发布时间】:2020-06-25 08:09:19
【问题描述】:
我正在加入 Spark RDD 和 Cassandra table(查找)但无法理解一些事情。
- Spark 会从
Cassandra table拉取 range_start 和 range_end 之间的所有记录,然后将其与 spark 内存中的RDD连接起来,否则它会将 RDD 中的所有值下推到 Cassandra 并在那里执行连接 - limit(1) 将应用于何处? (
Cassandra或Spark) - 无论应用什么限制(1 或 1000),
Spark是否总是从Cassandra中提取相同数量的记录?
代码如下:
//creating dataframe with fields required for join with cassandra table
//and converting same to rdd
val df_for_join = src_df.select(src_df("col1"),src_df("col2"))
val rdd_for_join = df_for_join.rdd
val result_rdd = rdd_for_join
.joinWithCassandraTable("my_keyspace", "my_table"
,selectedColumns = SomeColumns("col1","col2","col3","col4")
,SomeColumns("col1", "col2")
).where("created_at >''range_start'' and created_at<= range_end")
.clusteringOrder(Ascending).limit(1)
Cassandra 表详细信息 -
PRIMARY KEY ((col1, col2), created_at) WITH CLUSTERING ORDER BY (created_at ASC)
【问题讨论】:
-
@Atish 这是不同的 API...
标签: scala apache-spark cassandra datastax spark-cassandra-connector