我目前正在尝试连接两个数据集(Flink0.10-SnapshotAPI的一部分)。两个数据集的形式相同:
predictions:
6.932018685453303E155 DenseVector(0.0, 1.4, 1437.0)
org:
2.0 DenseVector(0.0, 1.4, 1437.0)
general form:
LabeledVector(Double, DenseVector(Double,Double,Double))
我要创建的是一个新的数据集[(double,double)],只包含两个数据集的标签,即:
join:
6.932018685453303E155 2.0
因此,我尝试了以下命令:
val join = org.join(predictions).where(0).equalTo(0){
(l, r) => (l.label, r.label)
}
但结果是“join”为空。我错过什么了吗?
1条答案
按热度按时间798qvoo81#
您正在加入labeledvector类型的label字段(索引0),即,使用匹配的标签构建所有元素对。你的例子表明你想要加入向量场。
但是,在向量场上连接,例如通过调用:
行不通,因为
DenseVector
向量场的类型,不能被flink识别为键类型(如各种数组)。till在下面的注解中描述了如何比较预测值和标签值。