J'ai besoin de passer diverses combinaisons d'ensembles de colonnes à ma requête SQL en tant que paramètreGROUPEMENT SPARK SQL ENSEMBLES
par exemple:
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)) """)
Il y a plusieurs combinaison dont je dois trouver la valeur agrégée. Est-il possible de passer ces ensembles de colonnes en tant que paramètre à la requête SQL au lieu de le coder manuellement.
Actuellement, j'ai fourni toute la combinaison en requête SQL, mais si une nouvelle combinaison vient à nouveau, je devrais changer la requête. Je prévois d'avoir toute la combinaison dans un fichier, puis lire tout et passer en paramètre à sql query. C'est possible?
Exemple: Tableau
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)) """
devrait produire en dessous de résultat:
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
c'est juste un exemple - je dois passer diverses combinaisons différentes de ENSEMBLES tâtonnant (pas tous combinés) De même que paramètre en une fois OU séparément
Toute aide serait vraiment appréciée.
Merci beaucoup.
pouvez-vous partager une petite données d'exemple et les résultats attendus? – mtoto
Salut, j'ai ajouté l'exemple. n'importe quelle aide serait vraiment appréciée –