2016-09-26 6 views
0

DataFramesとScala言語を使用してSparkSQL 2.0でこのようなSQLクエリを実装するにはどうすればよいですか?私は多くの記事を読んだことがありますが、それらのどれも私が必要とするものを達成しているようには見えません。ここに問題があります:SparkSQL2.0で同様のUPDATE-WHERE文を実行するにはどうすればよいですか?

UPDATE table SET value = 100 WHERE id = 2 
UPDATE table SET value = 70 WHERE id = 4 
..... 

は、あなたがこのような2つのカラムを持つテーブルtableがあるとします。

id | value 
--- | --- 
    1 | 1 
    2 | null 
    3 | 3 
    4 | null 
    5 | 5 

マップ、マッチケースを使用して、上記のクエリを実装する方法、のUDFまたは場合があります-elseステートメント? valueフィールドに格納する必要がある値はシーケンシャルではありませんので、具体的な値を入力してください。私は、DataFramesを扱うときに不変のデータを変更することはできないことも認識しています。私はそれを働かせたり、エラーを再現することができないので、共有するコードはありません。

答えて

1

はい、とても簡単です。 whenotherwiseを使用できます。

val pf = df.select($"id", when($"id" === 2, lit(100)).otherwise(when($"id" === 4, lit(70)).otherwise($"value")).as("value")) 
+0

ありがとうございました!問題は解決された ! – Emiliano

関連する問題