Cassandra“ in”子句的Sparklyr查询问题

时间:2019-01-03 11:43:12

标签: r apache-spark cassandra sparklyr

我需要用Spark查询cassandra表。我正在使用一个名为sparklyr的R库。当我尝试使用分区键的where条件(我的cassandra表有2个分区键)时,每个分配1个分区键都没有问题。但是,如果我每个都使用多个分区键,则会花费太多时间。我该如何处理这个问题。 (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”中有效地使用分区键。我该如何解决?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

旧值为'2018121205',新值为2018121205

对我有用。