You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Polarisary <po...@gmail.com> on 2019/11/05 07:11:41 UTC

Flink SQL GroupBy Excption

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)
```

polarisary@gmail.com





Re: Flink SQL GroupBy Excption

Posted by Terry Wang <zj...@gmail.com>.
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



> 2019年11月5日 15:11,Polarisary <po...@gmail.com> 写道:
> 
> 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)
> ```
> 
> polarisary@gmail.com <ma...@gmail.com>
> 
> 
> 
>