【问题标题】:Sparklyr Query Problem With Cassandra "in" clause使用 Cassandra“in”子句的 Sparklyr 查询问题
【发布时间】: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


【解决方案1】:

问题已通过删除“'”解决。

旧值为'2018121205',新值为2018121205

它对我有用..

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2020-08-18
    • 2018-11-21
    • 2011-08-22
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多