r - 使用 Cassandra“in”子句的 Sparklyr 查询问题
问题描述
我需要用 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”中有效地使用分区键。我该如何解决?对此有什么想法吗?
解决方案
问题已通过删除“'”解决。
旧值为'2018121205'
,新值为2018121205
。
它对我有用..
推荐阅读
- r - 根据时间和进度消息自定义闪亮应用程序中的进度指示器
- python - Python Webscraping Selenium 弹出 Youtube
- android - 为什么缩小会导致错误“JSONObject [”奖励“]不是字符串”?
- angular - 如何解决 Angular 中的“检测到循环依赖”警告?
- java - 超过时间异常java时间限制的问题
- c++ - “-std=c++17 无法通过命令行识别”在 Windows 中构建崇高文本时
- visual-studio-code - 在 VSCode 中浏览大文件中的行/列
- php - 从时间戳创建日期和时间的php数组
- python - 安装包后,包什么时候可见?
- c# - Web 浏览器无法使用 .net 桌面应用程序中的 Firebase SignInWithOAuth 打开或打开一次