Cast z Row na List w Scali

0

Nie hejtujcie za niefunkcyjne podejście, na ten moment mam inny problem.

Mam scalową (nie javową) listę, której elementami są rowy (utworzone tak, że na dataframe zastosowałem .collectAsList().asScala.toList). Lista rowów.
Chciałbym żeby listę rowów przerobić na listę list (decelowo chciałbym mieć listę double, przy czym double'ami by były średnie z tych list w dużej liście, ale na rowach nie umiem operować i totalnie typu nie czuję).

Ktoś doradzi jak scastować te rowy w liście?

2

Chciałbym żeby listę rowów

Kopiesz rowy od 7 do tamtego drzewa?

A z czego ten wiersz? Ze Sparka?
Generalnie nie wiem jak w Sparku ale powinna byc jakas metoda typu row.toList/Seq/Buffer/Vector/...

1

Zapewne musisz użyć funkcji map i przemapować Row na to co chcesz

0

Tak, jak najbardziej chodzi tu o Sparka.
Problem z podaniem przykładowego kodu polega na tym, że ja zwyczajnie nie jestem w stanie go napisać, bo operowanie na danych w tym języku jest dla mnie zupełną abstrakcją i czymś zupełnie innym niż to, do czego udało mi się przywyknąć i o ile rozumiem Waszą reakcję, to gdybym był w stanie podać kod, to nie musiałbym zgłaszać się na forum. Ja ugrzązłem już na etapie koncepcyjnym, a nie na tym, że mam funkcję castującą i mi ją podkreśla na czerwono.
Poniżej podaję co mniej więcej chciałbym w kodzie zobaczyć, moze komuś uda się wykryć jakieś upośledzenie w moim toku rozumowania i znajdziecie jakiś fajny młotek, który przy jednym uderzeniu wbije gwódź tak, by przybić deskę, a przy drugim uderzeniu wbije mi trochę wiedzy do łba za bardzo nie uszkadzając czaszki.

val listaRowówZDataframe = innyDataFrame.select("kolumna1", "columna2").collectAsList().asScala.toList
def obliczAvg(listaRowów : Row): List[Double] = {
  // tu chciałbym wykonać cast z List[Row] na List[List] i kolejne obliczenie, przykładowo:
  tempList = listaRowów.map(x => tutaj powinno odbyć się rzutowanie x typu Row na x typu List)

  // tu dla każdej podlisty chciałbym wykonać obliczenie średniej z każdej podlisty i zwrócić List[Double]
}
// tu powinienem wywołać obliczAvg(listaRowówZDataframe)
0

Wiedziałem że to głupie, ale nie że aż tak. Dzięki, stivens.

Edit. Ale jakby ktoś miał jakieś inne rozwiązanie i rozumiał o co mi chodzi to też może zarzucić. Zawsze fajnie się czegoś dowiedzieć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1