任务不可序列化Flink

时间:2015-07-09 11:00:58

标签: scala apache-flink

我试图在flink中进行pagerank基本示例,只需稍加修改(仅在读取输入文件时,其他一切都是相同的)我收到的错误是任务不可序列化和下面是输出错误的一部分

  

atorg.apache.flink.api.scala.ClosureCleaner $ .ensureSerializable(ClosureCleaner.scala:179)   在org.apache.flink.api.scala.ClosureCleaner $ .clean(ClosureCleaner.scala:171)

以下是我的代码

\+?[0-9][0-9()-\s+]{4,20}[0-9]

对于正确方向的任何帮助都非常感谢?谢谢。

1 个答案:

答案 0 :(得分:10)

问题是您在set serveroutput on declare l_strings P_DVP_CONSTS.T_VCHAR10ARRAY; l_dates P_DVP_CONSTS.T_DATEARRAY; begin l_strings := P_DVP_CONSTS.T_VCHAR10ARRAY('2015-06-08', '2015-07-09', '2015-08-10'); convert_array(l_strings, l_dates); dbms_output.put_line('Number of dates in array: ' || l_dates.count); for i in 1..l_dates.count loop dbms_output.put_line('Date ' || i || ': ' || to_char(l_dates(i), 'DD/MM/YYYY')); end loop; end; / PL/SQL procedure successfully completed. Number of dates in array: 3 Date 1: 08/06/2015 Date 2: 09/07/2015 Date 3: 10/08/2015 内引用了DataSet pages。这是不可能的,因为MapFunction只是数据流的逻辑表示,无法在运行时访问。

解决此问题的方法是将DataSet值分配给变量val pagesCount = pages.count,并在pagesCount中引用此变量。

MapFunction实际上做的是触发数据流图的执行,以便计算pages.count中的元素数量。然后结果返回到您的程序。