我有一个apache-beam应用程序,它在本地使用direct-runner运行流水线,在google cloud中使用dataflow Runner运行流水线。它在本地工作,但让google dataflow Runner失败了。
以下是错误跟踪:
它指向
“...无法反序列化序列化的DofnInfo”
和
“...java.lang.ClassNotFoundException:Header_H”
builder = new ByteBuddy().subclass(some.class).name("Header_H").modifiers(PUBLIC);
.defineField("serialVersionUID", long.class, STATIC, PRIVATE, FINAL).value(37L)
.implement(Serializable.class);
Class <?> clazz = builder.make().load(getClass().getClassLoader()).getLoaded();
Byte Buddy可以通过以下方式在jar文件中注入类:
DynamicType.Unloaded<?> type = builder.make();
builder.inject(someJar);
这将改变现有的jar文件以包含动态生成的类。这样,您就可以更改系统类路径上的现有jar。
这个API还允许您创建一个新的jar,您可以使用instrumentation
API(通过Java代理),它允许您将这个类作为一个新的jar文件附加到类路径中。为了避免附加代理,还可以尝试将byte-buddy-agent项目用于动态附件。
这将通过以下方式实现:
File someFolder = ...
File jar = builder.saveIn(someFolder);
ByteBuddyAgent.install().appendToSystemClassLoaderSearch(new JarFile(jar));
如果Google Cloud上不允许动态附件,您可以通过命令行中的常规附件来解决这个问题。
我试图根据用户输入动态创建一个单声道序列。我正在调用rest API并在Mono中获得ClientResponse。我的用例是在一个序列中调用2个或多个API,下一个API的输入负载取决于前一个API的输出。 我的硬编码序列操作看起来像 这是很好的工作,但我想让这个方法通用。我想从用户的POJO列表中获取所有必需的参数,并基于列表输入创建flatMap序列。因此,如果列表的长度为2,则将有2个平面
我试图在Apache Beam中使用BigtableIO的运行时参数来写入BigTable。 我创建了一个从 BigQuery 读取并写入 Bigtable 的管道。当我提供静态参数时,管道工作正常(使用 ConfigBigtableIO 和 ConfigBigtableConfiguration,请参阅此处的示例 - https://github.com/GoogleCloudPlatform/
本文向大家介绍如何在Python中创建可序列化的JSON类?,包括了如何在Python中创建可序列化的JSON类?的使用技巧和注意事项,需要的朋友参考一下 序列化是将复杂数据类型的对象转换为本地数据类型的过程,以便可以轻松地将它们转换为JSON表示法。 如果您有JSON字符串,则可以使用json.dumps()方法将其转换为JSON字符串。 Python pickle模块用于对Python对象结
问题内容: 我正在尝试在MySQL中创建序列(从整体上来说,我对SQL还是很新的)。我正在使用以下代码,但这会导致错误: ORDID指向我正在使用的表中的字段。如何正确创建序列? 编辑: 据称,MySQL不使用序列。我现在正在使用以下代码,但这也会引起错误。我该如何解决? 编辑: 我想我找到了解决方法。对于phpMyAdmin(我正在使用),您可以使用以下代码。 我不知道为什么它会喜欢这种方式,但
问题内容: 序列化器很少,例如 我们如何创建自己的自定义序列化程序? 问题答案: 在这里,您有一个示例,将自己的序列化器/解串器用于Kafka消息值。对于Kafka消息密钥是同一回事。 我们希望将MyMessage的序列化版本作为Kafka值发送,并再次将其反序列化为使用方的MyMessage对象。 在生产者端序列化MyMessage。 您应该创建一个实现org.apache.kafka.comm
如何创建自己的自定义序列化程序?