[
https://issues.apache.org/jira/browse/BEAM-14430?focusedWorklogId=769934&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-769934
]
ASF GitHub Bot logged work on BEAM-14430:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 12/May/22 22:21
Start Date: 12/May/22 22:21
Worklog Time Spent: 10m
Work Description: chamikaramj commented on code in PR #17608:
URL: https://github.com/apache/beam/pull/17608#discussion_r871848110
##########
model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/schema.proto:
##########
@@ -31,6 +31,8 @@ option go_package =
"github.com/apache/beam/sdks/v2/go/pkg/beam/model/pipeline_v
option java_package = "org.apache.beam.model.pipeline.v1";
option java_outer_classname = "SchemaApi";
+import "org/apache/beam/model/pipeline/v1/beam_runner_api.proto";
Review Comment:
Do we need this dependency ?
##########
model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto:
##########
@@ -1094,6 +1094,13 @@ message StandardCoders {
}
}
+message LogicalTypes {
Review Comment:
Move other types as well ?
##########
sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/PythonExternalTransform.java:
##########
@@ -162,6 +167,26 @@ public PythonExternalTransform<InputT, OutputT>
withKwargs(Row kwargs) {
return this;
}
+ /**
+ * Specifies the field type of arguments.
+ *
+ * <p>Type hints are especially useful for logical types since type
inference does not work well
+ * for logical types.
+ *
+ * @param argType A class object for the argument type.
+ * @param fieldType A schema field type for the argument.
+ * @return updated wrapper for the cross-language transform.
+ */
+ public PythonExternalTransform<InputT, OutputT> withTypeHint(
Review Comment:
I don't. Just wasn't sure. We can keep this per type if Robert and Brian are
OK.
##########
sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/PythonExternalTransform.java:
##########
@@ -179,16 +204,20 @@ Row buildOrGetKwargsRow() {
// Types that are not one of following are considered custom types.
// * Java primitives
// * Type String
+ // * Type PythonCallableSource
+ // * Any Type explicitly annotated by withTypeHint()
// * Type Row
- private static boolean isCustomType(java.lang.Class<?> type) {
+ private boolean isCustomType(java.lang.Class<?> type) {
boolean val =
!(ClassUtils.isPrimitiveOrWrapper(type)
|| type == String.class
+ || type == PythonCallableSource.class
Review Comment:
I would at least move this to a "isLogicalSchemaType()" method.
Issue Time Tracking
-------------------
Worklog Id: (was: 769934)
Time Spent: 3h 10m (was: 3h)
> Adding a logical type support for Python callables to Row schema
> ----------------------------------------------------------------
>
> Key: BEAM-14430
> URL: https://issues.apache.org/jira/browse/BEAM-14430
> Project: Beam
> Issue Type: New Feature
> Components: cross-language
> Reporter: Heejong Lee
> Assignee: Heejong Lee
> Priority: P2
> Time Spent: 3h 10m
> Remaining Estimate: 0h
>
> Adding a logical type support for Python callables to Row schema
--
This message was sent by Atlassian Jira
(v8.20.7#820007)