【发布时间】:2017-08-25 20:33:18
【问题描述】:
我写了一个 Apache Beam DoFn
static class FillLocation extends DoFn<TrackingRequest, TrackingRequest> {
@ProcessElement
public void processElement(ProcessContext c) {
TrackingRequest rq = c.element();
rq.location = getLocationFromIP(rq.IP);
c.output(rq);
}
}
在本地测试时它给了我这个错误 PTransform ..非法变异值..类.....
Input values must not be mutated in any way.
at org.apache.beam.runners.direct.ImmutabilityEnforcementFactory$ImmutabilityCheckingEnforcement.verifyUnmodified(ImmutabilityEnforcementFactory.java:96)
at org.apache.beam.runners.direct.ImmutabilityEnforcementFactory$ImmutabilityCheckingEnforcement.afterElement(ImmutabilityEnforcementFactory.java:71)
at org.apache.beam.runners.direct.TransformExecutor.processElements(TransformExecutor.java:149)
at org.apache.beam.runners.direct.TransformExecutor.run(TransformExecutor.java:107)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
【问题讨论】:
标签: google-cloud-platform google-cloud-dataflow apache-beam