Verwenden Sie mehr als eine collect_list in einer Abfrage in Spark SQL
Ich habe den folgenden Datenrahmendata
:
root
|-- userId: string
|-- product: string
|-- rating: double
und die folgende Abfrage:
val result = sqlContext.sql("select userId, collect_list(product), collect_list(rating) from data group by userId")
Meine Frage ist, dassproduct
undrating
in den aggregierten Arrays stimmen überein? Das heißt, ob dasproduct
und dierating
aus derselben Zeile haben denselben Index in den aggregierten Arrays.
Update: Ab Spark 2.0.0 kann mancollect_list
on struct type, damit wir einen machen könnencollect_list
in einer kombinierten Spalte. Aber für die Version vor 2.0.0 kann man nur @ verwendcollect_list
auf primitiven Typ.