我试图在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]
对于正确方向的任何帮助都非常感谢?谢谢。
答案 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
中的元素数量。然后结果返回到您的程序。