2016-10-31 6 views
0

Cassandraのユーザー定義集計関数のINITCONDには何を入れることができますか?私はシンプルな型(例:タプル)の例しか見ていません。Cassandra:集約関数INITCOND複合型ユーザー定義型

私は、集計関数における状態オブジェクトのための以下の型を持っている:私はINITCONDを省略した場合

create type avg_type_1 (
    accum tuple<text,int,double>, // source, count, sum 
    avg_map map<text,double>  // source, average 
); 

私は、Java NullPointerExceptionが得られます。

答えて

0

問題のUDTのために、次の作品:

INITCOND ((null, 0, 0.0), null) 

ACCUMフィールド(タプル):最初の要素(ソース、文字列)がnullに設定され、第二の要素は、(、int型を数えます)は0(ゼロ)に設定され、最後の3要素(sum、double)は0.0(ゼロ)に設定されます。

avg_mapフィールド(マップ):nullに設定(まだマップなし)。

フィールドは、次の(説明からの)ように、名前で参照することもできます。

INITCOND {accum: (null, 0, 0.0), avg_map: null}; 

名前付きフィールドの場合、{}が使用されます(マップとして表されるため)。

最後に、マップを初期化する例を示します。

INITCOND {accum: (null, 0, 0.0), avg_map: {'i1': 23.5, 'i2': 1.2}}; 
関連する問題