首页 > 解决方案 > 使用 Cassandra“in”子句的 Sparklyr 查询问题

问题描述

我需要用 Spark 查询 cassandra 表。我正在使用一个名为 sparklyr 的 R 库。当我尝试在分区键上使用 where 条件时(我的 cassandra 表有 2 个分区键),每个分区键都没有问题。但是,如果我每个都使用多个分区键,则需要花费太多时间。我该如何处理这个问题。(pyspark 没有问题。)

我尝试使用 sparlyr、dplyr、DBI 库。但我无法解决。

我成功的查询是;

spark_session(sc) %>% invoke("sql", "select * from sensor_data")%>%
  invoke("where", "sensor_id=109959 and filter_time ='2018060813'")%>%
  invoke("count")

#it takes 2 secs. (Number of spark tasks: 2)
#

问题是;

spark_session(sc) %>% invoke("sql", "select * from sensor_data")%>%
  invoke("where", "sensor_id=109959 and filter_time in ('2018060813','2018061107')")%>%
  invoke("count")

#It takes 9 mins.(Number of spark tasks: 987)
#

我认为我无法在“in”中有效地使用分区键。我该如何解决?对此有什么想法吗?

标签: rapache-sparkcassandrasparklyr

解决方案


问题已通过删除“'”解决。

旧值为'2018121205',新值为2018121205

它对我有用..


推荐阅读