我需要的列集各種組合,傳遞給我的SQL查詢作爲參數SPARK SQL GROUPING SETS
如:
Val result=sqlContext.sql(""" select col1,col2,col3,col4,col5,count(col6) from table T1 GROUP BY col1,col2,col3,col4,col5 GROUPING SETS ((col1,col2),(col3,col4),(col4, col5)) """)
有幾種組合,爲此我需要找到彙總值。 有什麼辦法可以將這些列的集合作爲參數傳遞給SQL查詢,而不是手動對其進行硬編碼。
目前我已經在sql查詢中提供了所有的組合,但是如果有任何新組合出現,那麼我將需要更改查詢。我打算將所有組合都放在一個文件中,然後讀取所有內容並將其作爲參數傳遞給sql查詢。可能嗎?
實施例:表
id category age gender cust_id
1 101 54 M 1111
1 101 54 M 2222
1 101 55 M 3333
1 102 55 F 4444
""" select id, category, age, gender, count(cust_id) from table T1 group By id, category, age, gender
GROUPING SETS ((id,category),(id,age),(id,gender)) """
它應該產生如下結果:
group by (id, category) - count of cust_id
1 101 3
1 102 1
group by (id and age) - count of cust_id
1 54 2
1 55 2
group by (id and gender) - count cust_id
1 M 3
1 F 1
這僅僅是一個例子 - 我需要各種不同的組合傳遞給摸索SETS(不是所有的組合)類似於參數在一個去或分開
任何幫助將非常感激。
非常感謝。柱的
可以大家分享一個小例子數據和預期的輸出? – mtoto
嗨,我已經添加了這個例子。任何幫助將非常感謝 –