Mam następujący dataframe data
:używać więcej niż jeden collect_list w jednej kwerendzie w Spark SQL
root
|-- userId: string
|-- product: string
|-- rating: double
oraz następujące zapytanie:
val result = sqlContext.sql("select userId, collect_list(product), collect_list(rating) from data group by userId")
Moje pytanie jest to, że robi product
i rating
w zagregowane tablice pasują do siebie? To znaczy, czy product
i rating
z tego samego wiersza mają ten sam indeks w zagregowanych tablicach.
Aktualizacja: Począwszy od Spark 2.0.0, można zrobić collect_list
na typie konstrukcji, abyśmy mogli wykonać jedną collect_list
na kolumnie złożonej. Ale dla wersji pre 2.0.0 można używać tylko wersji collect_list
na typie pierwotnym.
Jak używać 'cogroup' dla dużych zbiorów danych, np. Gdy używam' collect() ', to wyrzuca z pamięci wyjątek' rdd1 = rdd2.cogroup (rdd3) .collect'. Czy możesz pomóc w tej sprawie [https://stackoverflow.com/questions/47180307/how-to-use-cogroup-for-large-datasets]. mogę partycjonować pomoc Jestem nowy, aby zainicjować jakąkolwiek pomoc, aby rozwiązać ten problem. – Vignesh