2017-02-28 72 views
1

我是cassandra的新手,我主要在過去的幾個月裏一直在使用Hive。最近我開始了一個項目,我需要做一些我用cassandra配置的東西。Cassandra集合到地圖

本質上,我試圖找到一種方法來做一個聚合多行到查詢單個地圖。

在配置單元中,我只是通過「map」聚合來完成一個組。卡桑德拉有沒有辦法做類似的事情?

這裏是一個工作蜂巢查詢,做我希望做任務的例子:

select 
     map(
     "quantity", count(caseid) 
     , "title" ,casesubcat 
     , "id" , casesubcatid 
     , "category", named_struct("id",casecatid,'title',casecat) 
    ) as casedata 
from caselist 
group by named_struct("id",casecatid,'title',casecat) , casesubcat, casesubcatid 

回答

0

映射查詢結果以地圖(或一些其他類型/結構/類你選擇的)是責任的客戶端應用程序,並且通常是一項簡單的任務(但您並未指定將在何種情況下使用此地圖)。

實際這裏的問題是在卡桑德拉約GROUP BY。這不支持開箱即用。您可以檢查Cassandra的standard aggregate functions或嘗試創建user defined function,但卡桑德拉之路事先知道您的查詢,設計相應的模式,在寫階段和簡單的查詢做繁重的工作之後。因此,分組/彙總通常可以通過使用專用的counter tables來實現。

另一種選擇是在附加層(Apache的火花,例如)做數據處理。你有沒有考慮過在Cassandra之上使用Hive?