我在试着和一个 Seq[DataSet(Long,Long,Double)]
一个单身汉 DataSet[(Long,Long,Double)]
在Flink:
val neighbors= graph.map(el => zKnn.neighbors(results,
el.vector, 150, metric)).reduce(
(a, b) => a.union(b)
).collect()
其中graph是一个常规的scala集合,但可以转换为数据集;结果是 DataSet[Vector]
不应该被收集并且是邻居方法中需要的
我总是得到一个flinkruntime例外:
当前无法处理输出超过64个的节点。org.apache.flink.optimizer.compilereException:当前无法处理输出超过64个的节点。在org.apache.flink.optimizer.dag.optimizernode.addoutgoingconnection(optimizernode。java:347)在org.apache.flink.optimizer.dag.singleinputnode.setinput(singleinputnode。java:202
1条答案
按热度按时间wfauudbj1#
flink目前不支持输入数据集超过64个的联合运算符。
作为一种解决方法,您可以按层次结构合并多达64个数据集,并在层次结构的级别之间插入标识Map器。比如: