2017-06-07 9 views
1

シナリオを説明しましょう:Sparkでデータフレームの列のバイナリを実行する方法

私は1つのマスク値を作成しています。すなわち

val Date = 20170501 
val day = Date.toString.substring(6, 8) 
val mask = pow(2, day.toInt -1) 

は、その後、次の私はwithColumnを使用して追加の列を作成dataframeすなわち

val t1 = df.withColumn("C1", when($"a1" > 0 , $"C1" | mask.toInt).otherwise($"C1")) 

を作成していますが、私はそれが「value | is not a member of org.apache.spark.sql.ColumnName」と私にエラーを与えているDataframe列に|操作を行っておりますとき。

早期ヘルプをいただければ幸いです。

ありがとうございます。

答えて

1

あなたはColumnによって実装されbitwiseORを使用することができます。

val t1 = df.withColumn("C1", when($"a1" > 0 , $"C1".bitwiseOR(mask.toInt)).otherwise($"C1")) 
+0

おかげで..あなたが提供されたリンクは、私の目的を解決します。実際に私はビット単位でやろうとしているし、それを達成するために見つけることができない。ドキュメントを通って私は私の答えを得た。 – Nikhil

関連する問題