【问题标题】:Google Dataflow / Dataprep Shuffle key too large (INVALID_ARGUMENT)Google Dataflow/Dataprep Shuffle 键太大(INVALID_ARGUMENT)
【发布时间】:2018-03-02 22:09:53
【问题描述】:

我曾多次尝试运行此作业,每次都遇到许多与配额相关的警告(并且每次都要求增加),但最后总是以失败告终,并显示此错误消息,我认为这是由我的数据集太大,但我不确定。 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 有什么想法吗?

【问题讨论】:

  • 这在我看来更有可能是一个错误,即单个列中的单个值太大,而不是数据集太大。你有值这么长的列吗? (显然这里大约 2MB)
  • @jkff 如果还没有人告诉你,你是个美男子。解决了我的问题,谢谢!如果您想将其发布为答案,我会将其标记为已接受。再次感谢您的帮助:)

标签: java tableau-api google-cloud-dataflow google-cloud-dataprep


【解决方案1】:

在我看来,这更可能是一个错误,即单个列中的单个值太大,而不是数据集太大。你有值这么长的列吗? (显然这里大约 2MB)

也就是说,我认为这应该作为一个错误报告给 Dataprep。似乎他们按列值执行分组,并且他们可能应该在分组之前将它们修剪为较小的大小。我不知道他们是否关注 StackOverflow。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多