Ich bin neu in der Spark-Programmierung und habe ein Szenario, um einen Wert zuzuweisen, wenn eine Reihe von Werten in meiner Eingabe erscheint. Im Folgenden finden Sie einen SQL-Code, den ich verwenden würde, um meine Aufgabe zu erfüllen. Müssen Sie dasselbe in Spark tun.Case when Anweisung mit IN-Klausel in Pyspark
Sql Code:
SELECT CASE WHEN c.Number IN ('1121231', '31242323') THEN 1
ELSE 2 END AS Test
FROM Input c
Ich bin mir bewusst, mit nur einer Bedingung when
in Funken verwenden.
Input.select(when(Input.Number==1121231,1).otherwise(2).alias("Test")).show()
Vielen Dank für Ihre Antwort. Es funktionierte. Gibt es eine Möglichkeit, die Funktion when direkt auf dem Spark-Datenrahmen zu verwenden und eine Liste von Werten zu geben? – Sid
Ich glaube, ich habe gefunden, was ich machen wollte. df.when (df.char.isin ('H', 'O', 'M'), 1) .anderes (0) – Sid
@ user3258274 Das funktioniert auch. Sie können die Werteliste auch aus der Spalte extrahieren, indem Sie den DataFrame in eine rdd konvertieren und wie folgt sammeln: 'rdd = df.rdd; rdd.map (Lambda x: x.transform) .collect() '. –