我在读Flink的一个文件:
val avroInputFormat =
new AvroInputFormat[GenericRecord](new org.apache.flink.core.fs.Path(url), classOf[GenericRecord])
env.createInput(avroInputFormat).collect().asScala.toList
我遇到了一个例外:
异常java.util.concurrent.executionexception:org.apache.flink.runtime.rest.util.restclientexception:[内部服务器错误。,
增加堆大小不是一个好主意。如何更改此代码以避免异常。
请帮我优化代码。
1条答案
按热度按时间6fe3ivhb1#
好的,所以你犯的错误是调用
collect
方法,该方法将从计算机上的给定文件中获取所有元素以创建List
. 所以,你通常有两个选择:1) 拆下
collect
因为这是最有可能不需要你的美国ecase,这是转换文件和输出它们(根据评论)2) 如果你真的,真的需要这个
collect
出于某些特定的原因,应该增加堆以允许收集要处理的文件。