我目前正在尝试加入两个DataSets ( flink 0.10-SNAPSHOT API的一部分)。这两个DataSets具有相同的形式:
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))我想创建的是一个只包含两个DataSets标签的新DataSet(Double,Double),即:
join:
6.932018685453303E155 2.0因此,我尝试了以下命令:
val join = org.join(predictions).where(0).equalTo(0){
(l, r) => (l.label, r.label)
}但结果是'join‘是空的。我是不是遗漏了什么?
发布于 2015-08-13 20:06:35
您正在连接LabeledVector类型的标签字段(索引0),即构建具有匹配标签的所有元素对。您的示例表明您希望在向量域上进行连接。
但是,在向量场上连接,例如通过调用:
org.join(predictions).where("vector").equalTo("vector"){
(l, r) => (l.label, r.label)
}将不起作用,因为向量域的类型DenseVector不能被Flink识别为键类型(例如所有类型的数组)。
label在下面的注释中描述了如何比较预测值和标签值。
https://stackoverflow.com/questions/31987301
复制相似问题