i figured it out it was just a missing import Thanks
On November 1, 2014 at 19:51:41 PDT, abhinav chowdary <[email protected]> wrote:I have same requirement of passing list of values to in clause, when i am trying to do i am getting below error scala> val longList = Seq[Expression]("a", "b") <console>:11: error: type mismatch; found : String("a") required: org.apache.spark.sql.catalyst.expressions.Expression val longList = Seq[Expression]("a", "b") Thanks On Fri, Aug 29, 2014 at 3:52 PM, Michael Armbrust <[email protected]> wrote:This feature was not part of that version. It will be in 1.1. On Fri, Aug 29, 2014 at 12:33 PM, Jaonary Rabarisoa <[email protected]> wrote:1.0.2 On Friday, August 29, 2014, Michael Armbrust <[email protected]> wrote: What version are you using? On Fri, Aug 29, 2014 at 2:22 AM, Jaonary Rabarisoa <[email protected]> wrote:Still not working for me. I got a compilation error : value in is not a member of Symbol. Any ideas ? On Fri, Aug 29, 2014 at 9:46 AM, Michael Armbrust <[email protected]> wrote:To pass a list to a variadic function you can use the type ascription :_* For example: val longList = Seq[Expression]("a", "b", ...) table("src").where('key in (longList: _*)) Also, note that I had to explicitly specify Expression as the type parameter of Seq to ensure that the compiler converts "a" and "b" into Spark SQL expressions. On Thu, Aug 28, 2014 at 11:52 PM, Jaonary Rabarisoa <[email protected]> wrote:ok, but what if I have a long list do I need to hard code like this every element of my list of is there a function that translate a list into a tuple ? On Fri, Aug 29, 2014 at 3:24 AM, Michael Armbrust <[email protected]> wrote: You don't need the Seq, as in is a variadic function. personTable.where('name in ("foo", "bar")) On Thu, Aug 28, 2014 at 3:09 AM, Jaonary Rabarisoa <[email protected]> wrote:Hi all, What is the expression that I should use with spark sql DSL if I need to retreive data with a field in a given set. For example : I have the following schema case class Person(name: String, age: Int) And I need to do something like : personTable.where('name in Seq("foo", "bar")) ? Cheers. Jaonary -- Warm RegardsAbhinav Chowdary
