pcoet commented on code in PR #23837:
URL: https://github.com/apache/beam/pull/23837#discussion_r1005149798


##########
website/www/site/content/en/documentation/programming-guide.md:
##########
@@ -7393,7 +7402,29 @@ Depending on the SDK language of the pipeline, you can 
use a high-level SDK-wrap
 
 #### 13.2.1. Using cross-language transforms in a Java pipeline
 
-Currently, to access cross-language transforms from the Java SDK, you have to 
use the lower-level 
[External](https://github.com/apache/beam/blob/master/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/External.java)
 class.
+Users have three options to use cross-language transforms in a Java pipeline. 
At the highest level of abstraction, some popular Python transforms are 
accessible through dedicated Java wrapper transforms. For example, Java SDK has 
`DataframeTransform` class which uses Python SDK's `DataframeTransform` and 
`RunInference` class in Java SDK for `RunInference` in Python SDK and so on. 
When a SDK-specific wrapper transform is not available for a target Python 
transform, you could use the lower-level 
[PythonExternalTransform](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/PythonExternalTransform.java)
 class instead by specifying the fully qualified name of the Python transform. 
If you want to try external transforms from the SDKS other than Python, you may 
also use the lowest-level 
[External](https://github.com/apache/beam/blob/master/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/constru
 ction/External.java) class.
+
+**Using an SDK wrapper**
+
+To use a cross-language transform through an SDK wrapper, import the module 
for the SDK wrapper and call it from your pipeline, as shown in the example:
+
+```java
+import org.apache.beam.sdk.extensions.python.transforms.DataframeTransform;
+
+input.apply(DataframeTransform.of("lambda df: 
df.groupby('a').sum()").withIndexes())
+```
+
+**Using the PythonExternalTransform class**
+
+When an SDK-specific wrapper is not available, you cound access the Python 
cross-language transform through the `PythonExternalTransform` class by 
specifying the fully qualified name and the constructor arguments of the target 
Python transform.

Review Comment:
   "cound" -> "can"



##########
website/www/site/content/en/documentation/programming-guide.md:
##########
@@ -7393,7 +7402,29 @@ Depending on the SDK language of the pipeline, you can 
use a high-level SDK-wrap
 
 #### 13.2.1. Using cross-language transforms in a Java pipeline
 
-Currently, to access cross-language transforms from the Java SDK, you have to 
use the lower-level 
[External](https://github.com/apache/beam/blob/master/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/External.java)
 class.
+Users have three options to use cross-language transforms in a Java pipeline. 
At the highest level of abstraction, some popular Python transforms are 
accessible through dedicated Java wrapper transforms. For example, Java SDK has 
`DataframeTransform` class which uses Python SDK's `DataframeTransform` and 
`RunInference` class in Java SDK for `RunInference` in Python SDK and so on. 
When a SDK-specific wrapper transform is not available for a target Python 
transform, you could use the lower-level 
[PythonExternalTransform](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/PythonExternalTransform.java)
 class instead by specifying the fully qualified name of the Python transform. 
If you want to try external transforms from the SDKS other than Python, you may 
also use the lowest-level 
[External](https://github.com/apache/beam/blob/master/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/constru
 ction/External.java) class.

Review Comment:
   Lightly edited. Please make sure this still says what you mean:
   ```
   Users have three options to use cross-language transforms in a Java 
pipeline. At the highest level of abstraction, some popular Python transforms 
are accessible through dedicated Java wrapper transforms. For example, the Java 
SDK has the `DataframeTransform` class, which uses the Python SDK's 
`DataframeTransform`, and it has the `RunInference` class, which uses the 
Python SDK's `RunInference`, and so on. When an SDK-specific wrapper transform 
is not available for a target Python transform, you can use the lower-level 
[PythonExternalTransform](https://github.com/apache/beam/blob/master/sdks/java/extensions/python/src/main/java/org/apache/beam/sdk/extensions/python/PythonExternalTransform.java)
 class instead by specifying the fully qualified name of the Python transform. 
If you want to try external transforms from SDKs other than Python, you can 
also use the lowest-level 
[External](https://github.com/apache/beam/blob/master/runners/core-construction-java/src/main/java/org/apache/bea
 m/runners/core/construction/External.java) class.
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to