Hello,
When using nested field expressions like “Account.Id" with nested rows, I get the following error, “This type (GenericType<org.apache.flink.types.Row>) cannot be used as key.” Is there a way to make nested field expressions work with nested rows? Thanks, Joshua |
Can you show a minimal example of the query you are trying to run?
Maybe Timo or Fabian (cc'd) can help. Nico On Friday, 7 July 2017 23:09:09 CEST Joshua Griffith wrote: > Hello, > > When using nested field expressions like “Account.Id" with nested rows, I > get the following error, “This type > (GenericType<org.apache.flink.types.Row>) cannot be used as key.” Is there > a way to make nested field expressions work with nested rows? > Thanks, > > Joshua signature.asc (201 bytes) Download Attachment |
Thank you for your response Nico. Below is a simple case where I’m trying to join on Row fields:
Executing the above yields the following error:
For my application I only have TypeInformation at runtime (before the execution graph is built). Is it possible to use Row fields in join operations or is there an error with my implementation? Joshua
signature.asc (849 bytes) Download Attachment |
Hi Joshua, thanks for reporting this issue. You code is fine but IMO there is a bug in the Scala DataSet API.I think this should be fix. I'll open a JIRA issue for that. You can explicitly declare types with implicits if you put the following lines above the lines in which you apply the rowFn on the DataSet. implicit val rowTpe: TypeInformation[Row] = new RowTypeInfo(When you do this, you can also remove move the ResultTypeQueryable interface from the MapFunction. Cheers, Fabian 2017-07-10 18:10 GMT+02:00 Joshua Griffith <[hidden email]>:
|
Hello Fabian,
Thank you for your response. I tried your recommendation but I’m getting the same issue. Here’s the altered MakeRow MapFunction I tried: class MakeRow extends MapFunction[(Integer, Integer), Row] { In stepping through the code execution, it looks like the problem is that Row.isKeyType() returns false. Any recommendations? Thanks, Joshua
signature.asc (849 bytes) Download Attachment |
I apologize, that was the wrong link. Here’s where the exception is thrown: https://github.com/apache/flink/blob/release-1.3.1-rc2/flink-core/src/main/java/org/apache/flink/api/common/operators/Keys.java#L329-L331
signature.asc (849 bytes) Download Attachment |
In reply to this post by Joshua Griffith
Hi, You have to add the implicit value in the main() method before you call .map(rowFn) and not in the MapFunction. Best, Fabian 2017-07-10 18:54 GMT+02:00 Joshua Griffith <[hidden email]>:
|
Indeed that worked. Thanks!
signature.asc (849 bytes) Download Attachment |
Free forum by Nabble | Edit this page |