Hi ALL,
I have a problem when use flink sql, my code like this: ``` tEnv.registerDataStream(“mytable", actionStream, "uid, device_id, rowtime.rowtime”); ``` actionStream is kafka consumer,but this can not run,Exception as follow: ``` org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Too many fields referenced from an atomic type. at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:593) at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:438) at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:274) at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:746) at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:273) at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:205) at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1010) at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1083) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917) at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41) at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1083) Caused by: org.apache.flink.table.api.ValidationException: Too many fields referenced from an atomic type. at org.apache.flink.table.typeutils.FieldInfoUtils.extractFieldInfoFromAtomicType(FieldInfoUtils.java:388) at org.apache.flink.table.typeutils.FieldInfoUtils.extractFieldInformation(FieldInfoUtils.java:259) at org.apache.flink.table.typeutils.FieldInfoUtils.getFieldsInfo(FieldInfoUtils.java:227) at org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.lambda$asQueryOperation$0(StreamTableEnvironmentImpl.java:377) at java.util.Optional.map(Optional.java:215) at org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.asQueryOperation(StreamTableEnvironmentImpl.java:376) at org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.fromDataStream(StreamTableEnvironmentImpl.java:198) at org.apache.flink.table.api.java.internal.StreamTableEnvironmentImpl.registerDataStream(StreamTableEnvironmentImpl.java:212) at feature.task.DWDActionLogDeviceGroupByDay.main(ActionLogDeviceGroupByDay.java:96) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:576) ```
|
Hi, Polarisary~
The reason should be that `uid, device_id` can not be automatically derived from the type of your kafka actionStremt, you should check it and make sure actionStream returns suitable type. Best, Terry Wang
|
Free forum by Nabble | Edit this page |