Hi Rex,
after verifying with Timo I created a new issue to address your proposal of
introducing a new operator [1]. Feel free to work on that one if you like.

Best,
Matthias

[1] https://issues.apache.org/jira/browse/FLINK-20148

On Thu, Nov 5, 2020 at 6:35 PM Rex Fenley <r...@remind101.com> wrote:

> Thanks Timo,
>
> Checking if an element is in an Array does seem like a very useful
> function to have. Is there any plan to add it?
>
> Thanks
>
> On Thu, Nov 5, 2020 at 7:26 AM Timo Walther <twal...@apache.org> wrote:
>
>> Hi Rex,
>>
>> as far as I know, the IN operator only works on tables or a list of
>> literals where the latter one is just a shortcut for multiple OR
>> operations. I would just go with a UDF for this case. In SQL you could
>> do an UNNEST to convert the array into a table and then use the IN
>> operator. But I'm not sure if this is a better solution.
>>
>> Regards,
>> Timo
>>
>>
>>
>> On 04.11.20 01:13, Rex Fenley wrote:
>> > None of the following appear to work either. Flink 1.11.2, Scala 2.12.
>> >
>> > table.filter("apple".in(List("apple")))
>> > [info]   org.apache.flink.table.api.ValidationException: IN operator on
>> > incompatible types: String and ObjectArrayTypeInfo<String>.
>> >
>> > table.filter("apple".in(java.util.Arrays.asList("apple")))
>> > [info]   org.apache.flink.table.api.ValidationException: IN operator on
>> > incompatible types: String and ObjectArrayTypeInfo<String>.
>> >
>> > table.filter(
>> > "apple".in(newju.ArrayList[String](java.util.Arrays.asList("apple")))
>> > )
>> > [info]   org.apache.flink.table.api.ValidationException: IN operator on
>> > incompatible types: String and ObjectArrayTypeInfo<String>.
>> >
>> >
>> > On Tue, Nov 3, 2020 at 2:32 PM Rex Fenley <r...@remind101.com
>> > <mailto:r...@remind101.com>> wrote:
>> >
>> >     Using a custom serializer to make sure I'm using a List<String> does
>> >     not help.
>> >
>> >     [info]   org.apache.flink.table.api.ValidationException: IN operator
>> >     on incompatible types: String and List<String>.
>> >
>> >     On Tue, Nov 3, 2020 at 12:44 PM Rex Fenley <r...@remind101.com
>> >     <mailto:r...@remind101.com>> wrote:
>> >
>> >         For clarification, I'm using Pojo and operating on a column of
>> >         this type
>> >         publicjava.util.List<String> fruits
>> >
>> >         adding the following annotation does not help
>> >         @DataTypeHint("ARRAY<STRING NOT NULL>")
>> >
>> >         On Mon, Nov 2, 2020 at 7:02 AM Aljoscha Krettek
>> >         <aljos...@apache.org <mailto:aljos...@apache.org>> wrote:
>> >
>> >             I believe this is happening because the type system does not
>> >             recognize
>> >             that list of Strings as anything special but treats it as a
>> >             black-box type.
>> >
>> >             @Timo: Would this work with the new type system?
>> >
>> >             Best,
>> >             Aljoscha
>> >
>> >             On 02.11.20 06:47, Rex Fenley wrote:
>> >              > Hello,
>> >              >
>> >              > I'm trying to filter the rows of a table by whether or
>> >             not a value exists
>> >              > in an array column of a table.
>> >              > Simple example:
>> >              > table.where("apple".in($"fruits"))
>> >              >
>> >              > In this example, each row has a "fruits" Array<String>
>> >             column that could
>> >              > have 1 or many fruit strings which may or may not be
>> "apple".
>> >              >
>> >              > However, I keep receiving the following error when I do
>> >             something similar
>> >              > to the example above:
>> >              > "IN operator on incompatible types: String and
>> >             GenericType<java.util.List>"
>> >              >
>> >              > Is there any way to accomplish this?
>> >              >
>> >              > Thanks!
>> >              >
>> >
>> >
>> >
>> >         --
>> >
>> >         Rex Fenley|Software Engineer - Mobile and Backend
>> >
>> >
>> >         Remind.com <https://www.remind.com/>| BLOG
>> >         <http://blog.remind.com/> | FOLLOW US
>> >         <https://twitter.com/remindhq> | LIKE US
>> >         <https://www.facebook.com/remindhq>
>> >
>> >
>> >
>> >     --
>> >
>> >     Rex Fenley|Software Engineer - Mobile and Backend
>> >
>> >
>> >     Remind.com <https://www.remind.com/>| BLOG
>> >     <http://blog.remind.com/> | FOLLOW US
>> >     <https://twitter.com/remindhq> | LIKE US
>> >     <https://www.facebook.com/remindhq>
>> >
>> >
>> >
>> > --
>> >
>> > Rex Fenley|Software Engineer - Mobile and Backend
>> >
>> >
>> > Remind.com <https://www.remind.com/>| BLOG <http://blog.remind.com/> |
>> > FOLLOW US <https://twitter.com/remindhq> | LIKE US
>> > <https://www.facebook.com/remindhq>
>> >
>>
>>
>
> --
>
> Rex Fenley  |  Software Engineer - Mobile and Backend
>
>
> Remind.com <https://www.remind.com/> |  BLOG <http://blog.remind.com/>  |
>  FOLLOW US <https://twitter.com/remindhq>  |  LIKE US
> <https://www.facebook.com/remindhq>
>

Reply via email to