Spark的Cassandra数据聚合

Was*_*sim 5 java cassandra cassandra-2.0 apache-spark

我想使用服务器端数据选择和使用cassandraspark连接器进行过滤.事实上,我们有许多传感器每1秒发送一次值,我们对使用数月,日,小时等的这些数据聚合感兴趣,我提出了以下数据模型:

CREATE TABLE project1(      
      year int,
      month int,
      load_balancer int,
      day int,
      hour int,
      estimation_time timestamp,
      sensor_id int,
      value double, 
      ...
      PRIMARY KEY ((year, month, load_balancer), day, hour, estimation_time, sensor_id)
Run Code Online (Sandbox Code Playgroud)

然后,我们有兴趣获得2014年12月的负载均衡器IN(0,1,2,3)的数据汇总.所以它们是4个不同的分区.

我们使用的是cassandraspark连接器版本1.1.1,我们使用了一个按查询组合来获取所有值的平均值按小时汇总.

因此处理时间为4,341,390个元组,spark需要11分钟才能返回结果.现在的问题是我们正在使用5个节点,但是spark 只使用一个worker来执行任务.您能否建议更新查询或数据模型以提高性能?

Jac*_* L. 0

Spark Cassandra Connector就有这个功能,它就是SPARKC-25。您可以使用值创建任意 RDD,然后将其用作键源以从 Cassandra 表中获取数据。或者换句话说 - 将任意 RDD 连接到 Cassandra RDD。在您的情况下,该任意 RDD 将包含 4 个具有不同负载均衡器值的元组。查看文档以获取更多信息。SCC 1.2 最近发布了,它可能与 Spark 1.1 兼容(尽管它是为 Spark 1.2 设计的)。