该错误通常是因为在使用 Apache Beam 多语言环境时,执行了不支持的转换(transform),具体原因可以通过查看错误信息中的 beam:transform:external:v1 获取。
解决方法是检查代码中的转换是否符合多语言环境的支持范围,并进行相应的调整或修改。例如,代码中可能使用了 Java 特有的 API 或语法,需要改为多语言环境下通用的方式进行实现。具体参考代码示例:
// 错误的代码
PCollection
// 修改后的代码
PCollection
class MyDoFn extends DoFn
在修改后的代码中,使用了通用的方式定义了 DoFn 并通过 setCoder 指定了输出结果的编解码器。这样就可以在多语言环境下正常执行转换了。