【发布时间】:2018-08-30 17:36:37
【问题描述】:
我正在尝试复制此 python 代码:
cond_entropy_x = np.array([entropy(x[y == v]) for v in uy])
其中x 和y 是向量,uy 是y 上的唯一值,例如0,1。
在 flink 中,我有:
val uy = y.distinct.collect
val condHx = for (i ← uy)
yield entropy(x.filterWithBcVariable(y)((_, yy) ⇒ yy == i))
但是,filterWithBcVariable 似乎没有采用 y 上的每个值,它只采用第一个。
我也试过了:
for (i ← values) yield y.join(x).where(a ⇒ a).equalTo(_ ⇒ i)
但是我的内存用完了。
如何根据y 上的值过滤x?
x.zip(y) 之类的东西会这样做,但不受支持。
有什么想法吗?
【问题讨论】:
标签: python scala numpy apache-flink entropy