Spark SQL groupement: Ajouter au groupe par le ou les envelopper dans un (premier) si vous n'avez pas de soins de la valeur que vous obtenez.;

J'ai une requête dans Spark SQL comme

select count(ts), truncToHour(ts)
from myTable
group by truncToHour(ts).

ts est de type timestamp, truncToHour est un UDF qui tronque le timestamp de l'heure. Cette requête ne fonctionne pas. Si j'essaie,

select count(ts), ts from myTable group by truncToHour(ts)

J'ai eu expression 'ts' is neither present in the group by, nor is it an aggregate function. Add to group by or wrap in first() if you don't care which value you get.;, mais first() n'est pas défini si je fais:

select count(ts), first(ts) from myTable group by truncToHour(ts)

De toute façon pour obtenir ce que je voulais, sans l'aide d'une sous-requête? Aussi, pourquoi dire "enveloppez-les dans du premier()" mais le first() n'est pas défini?

InformationsquelleAutor Paul Z Wu | 2015-07-09