【发布时间】:2019-05-30 00:03:34
【问题描述】:
我需要使用 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”中有效地使用分区键。我该如何解决?对此有什么想法吗?
【问题讨论】:
-
我不熟悉 Sparklyr,但你能在第二个查询中执行
.explain- 我怀疑谓词没有被按下。另外 - 你使用什么版本的 spark cassandra 连接器?
标签: r apache-spark cassandra sparklyr