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>