【问题标题】:Getting Null Pointer exception while trying to get value from option in Apache beam尝试从 Apache Beam 中的选项获取值时出现空指针异常
【发布时间】:2021-10-05 17:34:17
【问题描述】:

我正在使用 JAVA8 和 Apache Beam 2.19.0 来运行一些数据流作业。根据我的要求,我在代码中动态设置选项值,如下所示。

option.setDay(ValueProvider.StaticValueProvider.of(sDay))

我试图在同一数据流管道的另一个转换中得到它。当我运行小数据时,它的工作正常我能够获得 options.getDay().get() 值,但对于不同文件中的 500 万行等大数据,它在 options.getDay().get 处给出空指针异常()。

为这个问题添加更多示例点以便更好地理解。

  1. 如果我正在阅读 1 百万行,它执行得很好。
  2. 如果我正在阅读 200 万行,它执行得很好,但给 节流伐木工人。它用完了 30 秒的登录配额 仅 25.107 秒
  3. 如果我阅读的行数超过 200 万行,则会出现节流 伐木工人。它仅用了 25.107 秒就用完了 30 秒的日志配额,并且 options.getDay().get() 处的空指针异常

【问题讨论】:

  • 请告诉我们您使用的语言。这看起来不像python。是 Java 还是 Go?
  • 感谢我正在使用 java8

标签: google-cloud-dataflow apache-beam dataflow apache-beam-io


【解决方案1】:

如果我理解正确,您似乎在流中的每个元素上都绑定了setDay。我猜想一个元素正在调用set,而另一个元素正在尝试再次并行调用getset,这会导致空指针异常。

要解决此问题,您可以将元素本身的 sDay 传递给另一个属性,而不是修改选项。

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多