Проблема Sparklyr Query с Кассандрой "в" предложении - PullRequest
0 голосов
/ 03 января 2019

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

1 Ответ

0 голосов
/ 07 января 2019

Проблема была решена удалением "'".

Старое значение '2018121205', новое значение 2018121205.

Это сработало для меня ..

...