To powinno być łatwe, ale .... używając Spark 1.6.1 .... Mam DataFrame # 1 z kolumnami A, B, C . przy wartościach:Tworzenie nowej DataFrame Spark z nową wartością kolumny opartą na kolumnie w pierwszej ramce danych Java
A B C
1 2 A
2 2 A
3 2 B
4 2 C
I następnie utworzyć nową dataframe z nowej kolumny D tak:
DataFrame df2 = df1.withColumn("D", df1.col("C"));
tej pory tak dobrze, ale faktycznie chcę wartość w kolumnie D być czyli warunkowa:
// pseudo code
if (col C = "A") the col D = "X"
else if (col C = "B") the col D = "Y"
else col D = "Z"
Następnie opróżniam kolumnę C i zmieniam nazwę D na C. Próbowałem przeglądać funkcje kolumn, ale nic nie pasuje do rachunku; Pomyślałem o użyciu df1.rdd(). Map() i iteracji po wierszach, ale poza tym, że nie udało mi się go uruchomić, pomyślałem, że cały punkt DataFrames miał odejść od abstrakcji RDD?
Niestety muszę to zrobić w Javie (i oczywiście Spark z Javą nie jest optymalny !!). Wygląda na to, że brakuje mi tego oczywistego i cieszę się, że pokazałem, że jestem idiotą, gdy przedstawię rozwiązanie!
Dzięki za to - ja rzeczywiście wpatrując się oczywiste w obliczu: s - co mi brakowało był statyczny import funkcji sql tj: import static org.apache. spark.sql.functions. * – user1128482
@ user1128482 Przepraszam, zapomniałem importu. Dobrze wiedzieć, że w końcu się dowiedziałeś. –