2017-08-23 9 views
0

私はspark 2.1を使用しており、スクリプトはpysparkです。私がここにこだわっているので、これで私を助けてください。複数列のpyspark条件と新しい列を返す

問題文は:複数の列

入力dataframe上の条件に基づいて新しい列を作成するために今、私はFLGとして1つの新しい列を作成する必要が

FLG1 FLG2 FLG3 

T  F  T 

F  T  T 

T  T  F 

を下回っていると私の条件はFLG1==T&&(FLG2==F||FLG2==T)かのようになります私FLGは他F

TdataframeDFとして上に考慮しなければなりません以下

DF.withColumn("FLG",DF.select(when(FLG1=='T' and (FLG2=='F' or FLG2=='T','F').otherwise('T'))).show() 

が定義されていないとき、私は名前を得ていた動作しませんでした試みたが、私のコードスニペットで

+0

'と'はpysparkで動作しません - https://issues.apache.org/jira/を参照してくださいブラウズ/ SPARK-8568 – desertnaut

答えて

1

は、以下のことを試してみてください、このハードルを越えるには、私を助けてください、それは動作するはずです

from pyspark.sql.functions import col, when, lit 
DF.withColumn("FLG", when((col("FLG1")=='T') & ((col("FLG2")=='F') | (col("FLG2")=='T')),lit('F')).otherwise(lit('T'))).show() 
+0

クイック返信RameshのためのThans。 |: 'str'と 'Dataframe'のサポート対象外のオペランドタイプを取得する – user3292373

+0

私の更新された回答を試してください:) –

+0

もう一度更新しました:) –

関連する問題