Mam aplikację CLI do transformacji JSON. Większość jego kodu to pingowanie map
ping, flatMap
i przechodzenie z for
listami JValues. Teraz chcę przenieść tę aplikację do Sparka, ale wydaje mi się, że muszę przepisać wszystkie funkcje 1: 1, ale napiszę RDD[JValue]
zamiast List[JValue]
.Traktuj Spark RDD jak zwykły Seq
Czy istnieje sposób (jak klasa typu) dla funkcji akceptowania obu list i RDD.
Sygnatura metody na liście i na RDD to nie to samo, więc będzie to bolało. Możesz być w stanie zastosować metodę typeclass i zdefiniować własne opakowanie dla swojej mapy, zapewniając instancję dla obu. Jeśli mógłbyś zdefiniować monotazy ze skalą i przetasować instancje dla RDD, możesz to wykorzystać. – Daenyth
Myślę, że nie powinno być problemów z funktorem. Ale na pierwszy rzut oka RDD nie posiada praw Monada. – chuwy
Jeśli RDD nie przestrzega praw monady, nie będziesz w stanie użyć FlatMap z typografią scalazy. Powiedziałeś, że możesz zaimplementować wersję, która nie jest zgodna z prawem, a może * może * działać zgodnie z Twoimi potrzebami. Podobne do zapewnienia ValidationFlatMap – Daenyth