我已经尝试过多次运行这项工作,并且每次在遇到许多与配额相关的警告(并且每次都要求增加)之后,但最终它总是以这个错误消息结束,我相信这是由于我的数据集太大,但我不确定。Dataprep 应该能够处理任何规模的 ETL 作业,而这甚至不是那么大的作业。无论如何,这是错误消息,任何帮助将不胜感激:
java.lang.RuntimeException: org.apache.beam.sdk.util.UserCodeException: java.lang.RuntimeException: java.io.IOException: INVALID_ARGUMENT: Shuffle key too large:2001941 > 1572864
at com.google.cloud.dataflow.worker.GroupAlsoByWindowsParDoFn$1.output(GroupAlsoByWindowsParDoFn.java:182)
at com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner$1.outputWindowedValue(GroupAlsoByWindowFnRunner.java:104)
at com.google.cloud.dataflow.worker.util.BatchGroupAlsoByWindowViaIteratorsFn.processElement(BatchGroupAlsoByWindowViaIteratorsFn.java:121)
at com.google.cloud.dataflow.worker.util.BatchGroupAlsoByWindowViaIteratorsFn.processElement(BatchGroupAlsoByWindowViaIteratorsFn.java:53)
at com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner.invokeProcessElement(GroupAlsoByWindowFnRunner.java:117)
...
完整的错误信息可以在这里找到:https ://pastebin.com/raw/QTtmm5D2
我已经获得了几次配额增加,虽然这让工作比以前继续父亲,但它仍然以同样的错误结束(尽管随机键大小更大。)由于配额,它现在似乎没有撞墙相关问题。
除了放弃 Dataprep 并回到 map reduce 之外,还有什么想法吗?