我已尝试多次运行此作业,并且每次遇到许多与配额相关的警告(并且每次请求增加)但最终总是因为此错误消息而失败,我相信这是由我造成的数据集太大了,但我不确定。 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的想法会减少吗?
答案 0 :(得分:2)
这看起来更像是一个错误,单个列中的单个值太大,而不是数据集太大。你有这么久的值列吗? (显然这里约2MB)
那就是说,我认为这应该被报告为Dataprep的一个错误。看起来他们按列值执行分组,并且他们可能应该在分组之前将它们修剪为更小的尺寸。我不知道他们是否关注StackOverflow。