Wie UND-oder oder-Bedingung in der wenn in der Funke
Ich bewerten wollte, zwei Bedingungen, wenn wie diese :-
import pyspark.sql.functions as F
df = df.withColumn(
'trueVal', F.when(df.value < 1 OR df.value2 == 'false' , 0 ).otherwise(df.value))
Für diese bekomme ich 'invalid syntax' für die Verwendung von 'ODER'
Sogar ich habe versucht, mit verschachtelten wenn-Anweisungen :-
df = df.withColumn(
'v',
F.when(df.value < 1,(F.when( df.value =1,0).otherwise(df.value))).otherwise(df.value)
)
Dafür habe ich bekommen 'keyword can't be an expression'
für die geschachtelte wenn-Anweisungen.
Könnte wie ich mehrere Bedingungen in when
alle arbeiten rund um ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
pyspark.sql.DataFrame.wo
nimmt eine Boolean-Spalte als Bedingung. Bei der Verwendung von PySpark, ist es oft nützlich, zu denken, "Spalte " Ausdruck", wenn Sie Lesen, "Spalte".Logischen Operationen auf PySpark Spalten verwenden Sie die bitweise Operatoren:
&
fürand
|
füror
~
fürnot
Beim kombinieren diese mit Vergleichsoperatoren wie
<
, Klammern sind Häufig erforderlich.In Ihrem Fall die richtige Aussage ist:
Siehe auch: SPARK-8568