我需要用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”中有效地使用分区键。我该如何解决?有什么想法吗?
答案 0 :(得分:0)
已通过删除“'”解决了问题。
旧值为'2018121205'
,新值为2018121205
。
对我有用。