これは簡単ですが.... Spark 1.6.1を使用しています.... DataFrame#1に列A、B、C 。値を持つ:これまでのところは良い最初のデータフレームの列に基づいて新しい列値を持つ新しいSpark DataFrameを作成するJava
DataFrame df2 = df1.withColumn("D", df1.col("C"));
を私は実際には、列Dの値は、条件付きすなわちになりたい::
A B C
1 2 A
2 2 A
3 2 B
4 2 C
私はそのように新しい列Dで新しいデータフレームを作成
// pseudo code
if (col C = "A") the col D = "X"
else if (col C = "B") the col D = "Y"
else col D = "Z"
私は列Cをドロップし、Dの名前をCに変更します。私は列関数を見てみましたが、何も手形に合うようには見えません。私はdf1.rdd()。map()を使って行全体を繰り返し処理することを考えましたが、それを実際に動作させないことを除けば、DataFrames全体がRDD抽象化から離れようとしていました。
残念ながら私はJavaでこれを行う必要があります(もちろんSpark with Javaは最適ではありません!!)。私は明らかに不足しているようで、解決策を提示するとばかげていることが示されてうれしいです!
おかげで、その後、他の構造であれば、単純なを書きます。■ - 私が欠けていたものをSQL関数の静的インポートは、IEた:インポート静的org.apacheを。 spark.sql.functions。* – user1128482
@ user1128482申し訳ありませんが、私はインポートを忘れました。あなたが最後に見つけたことを知ってよかった。 –