2016-10-24 18 views
3

DataFrameに複数の値を持つ列の条件を追加したいとします。Spark SQL - IN句

たとえば、単一の値を扱うことができます。

df.where($"type".==="type1" && $"status"==="completed"). 

以下のように同じ列に複数の値を追加するにはどうすればよいですか。

df.where($"type" IN ("type1","type2") && $"status" IN ("completed","inprogress") 

答えて

7

あなたが探している方法はisinです:通常

import sqlContext.implicits._ 
df.where($"type".isin("type1","type2") and $"status".isin("completed","inprogress")) 

、あなたはどのようにこの

val types = Seq("type1","type2") 
val statuses = Seq("completed","inprogress") 

df.where($"type".isin(types:_*) and $"status".isin(statuses:_*)) 
+0

本当にありがとうございました..その作業.. – Shankar

+0

のような何かをしたいです私は動的に複数の値を構築する?私はStringBuilderを動作させないようにしました。値が '、'で区切られていれば、単一の文字列として扱われるかもしれません。 – Shankar

+0

'Array'や' List'の代わりに 'Seq'を使用している理由は何ですか?ありがとう! – akmal