0

inにenable_user_defined_functions設定して apache-cassandra-2.2.1 を実行しています。この記事に基づいて、カスタム集計を次のように定義しました。truecassandra.yml

CREATE FUNCTION sumFunc(current double, candidate double) CALLED ON NULL INPUT RETURNS double LANGUAGE java AS 'if(current == null) return candidate; return current + candidate;'
CREATE AGGREGATE sum(double) SFUNC sumFunc STYPE double INITCOND null;

CQLSH コンソールからこれを呼び出すと、タイムアウトが表示されます。

cqlsh:test> SELECT word, sum(frequency) FROM words;
OperationTimedOut: errors={}, last_host=127.0.0.1

他のクエリを正常に実行できます。scala からクエリを実行することもできます (ただし、完全な結果セットは得られません)。

CassandraConnector(conf).withSessionDo { session =>
  val result: ResultSet = session.execute("SELECT word, SUM(frequency) FROM test.words;")
  while(result.isExhausted == false) {
    println(result.one)
  }
}
4

1 に答える 1