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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage