小编thi*_*ago的帖子

Spark Cassandra连接器 - 分区键的范围查询

我正在评估spark-cassandra-connector,我正在努力尝试让分区键的范围查询工作.

根据连接器的文档,似乎可以使用相等或IN运算符对分区键进行服务器端过滤,但不幸的是,我的分区键是时间戳,所以我不能使用它.

所以我尝试使用Spark SQL和以下查询('timestamp'是分区键):

select * from datastore.data where timestamp >= '2013-01-01T00:00:00.000Z' and timestamp < '2013-12-31T00:00:00.000Z'
Run Code Online (Sandbox Code Playgroud)

虽然该作业产生200个任务,但查询不返回任何数据.

此外,我可以确保自从在cqlsh上运行查询后返回数据(使用'token'函数进行适当的转换)DOES返回数据.

我在独立模式下使用spark 1.1.0.Cassandra是2.1.2,连接器版本是'b1.1'分支.Cassandra驱动程序是DataStax的"主"分支.Cassandra集群覆盖在具有3个服务器的spark集群上,复制因子为1.

这是工作的完整日志

有人知道吗?

更新:尝试基于分区键(使用CassandraRDD.where方法)进行服务器端筛选时,我收到以下异常:

Exception in thread "main" java.lang.UnsupportedOperationException: Range predicates on partition key columns (here: timestamp) are not supported in where. Use filter instead.
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我不知道"过滤器"是什么......

cassandra apache-spark

5
推荐指数
2
解决办法
3250
查看次数

标签 统计

apache-spark ×1

cassandra ×1