Мне нужно запросить таблицы Кассандры с помощью Spark. Я использую библиотеку R под названием sparklyr. Когда я пытаюсь использовать условие «где» на ключах разделения (моя таблица 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". Как я могу решить это? Есть какие-нибудь идеи по этому поводу?