Próbuję wziąć mój danych wejściowych:Spark: Dodaj kolumnę dataframe warunkowo
A B C
--------------
4 blah 2
2 3
56 foo 3
i dodać kolumnę do końca na podstawie tego, czy B jest pusta lub nie:
A B C D
--------------------
4 blah 2 1
2 3 0
56 foo 3 1
I można to łatwo zrobić, rejestrując wejściową ramkę danych jako tabelę tymczasową, a następnie wpisując zapytanie SQL.
Ale naprawdę chciałbym wiedzieć, jak to zrobić za pomocą tylko metod Scala i bez konieczności wypisywania zapytania SQL w Scali.
Próbowałem już .withColumn
, ale nie mogę zrobić tego, co chcę.
To jest dokładnie to, czego szukałem. Próbowałem kilka różnych rzeczy z 'when' i' otherwise', ale myślę, że otrzymałem dokładny format źle. Nieco pomijam temat, ale czy wiesz, jak Spark radzi sobie z Column? Na przykład, jeśli dodaję ~ 20 kolumn, byłoby to szybciej zrobić 20 .withColumn i zachować je jako ramkę danych lub zmapować je do RDD i po prostu dodać je wszystkie na mapie, a następnie przekonwertować z powrotem na ramkę danych, aby zapisać do parkietu ? – mcmcmc
Właśnie znalazłem [to] (http://stackoverflow.com/questions/33826495/spark-scala-2-10-tuple-limit). Uważam, że UDF są tym, czego szukam. – mcmcmc
UDF jest o czym mówiłem poniżej ... –