You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Yang Zhang (Jira)" <ji...@apache.org> on 2019/09/26 17:56:00 UTC

[jira] [Created] (BEAM-8316) What is corresponding data type to set in UDF parameter to match RecordType

Yang Zhang created BEAM-8316:
--------------------------------

             Summary: What is corresponding data type to set in UDF parameter to match RecordType
                 Key: BEAM-8316
                 URL: https://issues.apache.org/jira/browse/BEAM-8316
             Project: Beam
          Issue Type: Bug
          Components: beam-model
    Affects Versions: 2.15.0
            Reporter: Yang Zhang


Hello Beam community, 

I want to have an UDF to take a record as input. Per error info as shown below, it indicates that the input is *RecordType*, but ** what should I set in the UDF parameter so that Beam would not complain about the type compatibility? Below is the rull error trace. Thank you very much!

 

========error trace===========

Exception in thread "main" org.apache.beam.sdk.extensions.sql.impl.ParseException: Unable to parse query select fooudf(pv.header) from kafka.tracking.PageViewEvent as pvException in thread "main" org.apache.beam.sdk.extensions.sql.impl.ParseException: Unable to parse query select fooudf(pv.header) from kafka.tracking.PageViewEvent as pv at org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.convertToBeamRel(CalciteQueryPlanner.java:165) at org.apache.beam.sdk.extensions.sql.impl.BeamSqlEnv.parseQuery(BeamSqlEnv.java:103) at org.apache.beam.sdk.extensions.sql.SqlTransform.expand(SqlTransform.java:124) at org.apache.beam.sdk.extensions.sql.SqlTransform.expand(SqlTransform.java:82) at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:539) at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:473) at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:44) at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:169) at com.linkedin.samza.sql.engine.BeamSqlEntry.preparePipeline(BeamSqlEntry.java:52) at com.linkedin.samza.sql.engine.BeamSqlEntry.exec(BeamSqlEntry.java:41) at com.linkedin.samza.sql.engine.BeamSqlUI.main(BeamSqlUI.java:33)Caused by: org.apache.calcite.tools.ValidationException: org.apache.calcite.runtime.CalciteContextException: From line 1, column 8 to line 1, column 24: No match found for function signature fooudf(<RecordType(INTEGER memberId, VARCHAR viewerUrn, VARCHAR applicationViewerUrn, VARCHAR csUserUrn, BIGINT time, VARCHAR server, VARCHAR service, VARCHAR environment, VARBINARY guid, VARBINARY treeId, INTEGER requestId, VARCHAR impersonatorId, VARCHAR version, VARCHAR instance, VARCHAR appName, VARCHAR testId, VARCHAR testSegmentId, RecordType(BIGINT time, VARCHAR server, VARCHAR instance, VARCHAR appName, VARBINARY messageId, INTEGER auditVersion, VARCHAR fabricUrn, VARCHAR clusterConnectionString) auditHeader, RecordType(VARCHAR pageUrn, VARBINARY trackingId) pageInstance, RecordType(VARCHAR applicationUrn, VARCHAR version, VARBINARY trackingId) clientApplicationInstance, VARCHAR originSource, VARCHAR sessionUrn, RecordType(VARBINARY treeId, INTEGER requestId, INTEGER taskId, VARCHAR rpcTrace, BOOLEAN forceTraceEnabled, (VARCHAR, VARCHAR) MAP context, DOUBLE scaleFactor) traceData)>) at org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:190) at org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.convertToBeamRel(CalciteQueryPlanner.java:136) ... 10 moreCaused by: org.apache.calcite.runtime.CalciteContextException: From line 1, column 8 to line 1, column 24: No match found for function signature fooudf(<RecordType(INTEGER memberId, VARCHAR viewerUrn, VARCHAR applicationViewerUrn, VARCHAR csUserUrn, BIGINT time, VARCHAR server, VARCHAR service, VARCHAR environment, VARBINARY guid, VARBINARY treeId, INTEGER requestId, VARCHAR impersonatorId, VARCHAR version, VARCHAR instance, VARCHAR appName, VARCHAR testId, VARCHAR testSegmentId, RecordType(BIGINT time, VARCHAR server, VARCHAR instance, VARCHAR appName, VARBINARY messageId, INTEGER auditVersion, VARCHAR fabricUrn, VARCHAR clusterConnectionString) auditHeader, RecordType(VARCHAR pageUrn, VARBINARY trackingId) pageInstance, RecordType(VARCHAR applicationUrn, VARCHAR version, VARBINARY trackingId) clientApplicationInstance, VARCHAR originSource, VARCHAR sessionUrn, RecordType(VARBINARY treeId, INTEGER requestId, INTEGER taskId, VARCHAR rpcTrace, BOOLEAN forceTraceEnabled, (VARCHAR, VARCHAR) MAP context, DOUBLE scaleFactor) traceData)>) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463) at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:787) at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:772) at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4825) at org.apache.calcite.sql.validate.SqlValidatorImpl.handleUnresolvedFunction(SqlValidatorImpl.java:1739) at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:270) at org.apache.calcite.sql.SqlFunction.deriveType(SqlFunction.java:215) at org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5584) at org.apache.calcite.sql.validate.SqlValidatorImpl$DeriveTypeVisitor.visit(SqlValidatorImpl.java:5571) at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:138) at org.apache.calcite.sql.validate.SqlValidatorImpl.deriveTypeImpl(SqlValidatorImpl.java:1657) at org.apache.calcite.sql.validate.SqlValidatorImpl.deriveType(SqlValidatorImpl.java:1642) at org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:462) at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4089) at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3352) at org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60) at org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84) at org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994) at org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954) at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216) at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:929) at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:633) at org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:188) ... 11 moreCaused by: org.apache.calcite.sql.validate.SqlValidatorException: No match found for function signature fooudf(<RecordType(INTEGER memberId, VARCHAR viewerUrn, VARCHAR applicationViewerUrn, VARCHAR csUserUrn, BIGINT time, VARCHAR server, VARCHAR service, VARCHAR environment, VARBINARY guid, VARBINARY treeId, INTEGER requestId, VARCHAR impersonatorId, VARCHAR version, VARCHAR instance, VARCHAR appName, VARCHAR testId, VARCHAR testSegmentId, RecordType(BIGINT time, VARCHAR server, VARCHAR instance, VARCHAR appName, VARBINARY messageId, INTEGER auditVersion, VARCHAR fabricUrn, VARCHAR clusterConnectionString) auditHeader, RecordType(VARCHAR pageUrn, VARBINARY trackingId) pageInstance, RecordType(VARCHAR applicationUrn, VARCHAR version, VARBINARY trackingId) clientApplicationInstance, VARCHAR originSource, VARCHAR sessionUrn, RecordType(VARBINARY treeId, INTEGER requestId, INTEGER taskId, VARCHAR rpcTrace, BOOLEAN forceTraceEnabled, (VARCHAR, VARCHAR) MAP context, DOUBLE scaleFactor) traceData)>) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463) at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:572) ... 33 more



--
This message was sent by Atlassian Jira
(v8.3.4#803005)