阿帕奇SparkContext
ClassTag和AnyRef约束的泛型函数有一个方法:写在斯卡拉
def broadcast[T: ClassTag](value: T): Broadcast[T]
我尝试写分析数据的包装(现在它只是试图登录大小)和调用原始的方法:
def broadcast[T: ClassTag](value: T): Broadcast[T] = {
val sizeEst = SizeEstimator.estimate(value)
log.debug(s"Broacasting $sizeEst bytes of data")
sc.broadcast(value)
}
org.apache.spark.util.SizeEstimator
期待一个AnyRef
,所以我得到一个错误。我对Scala并不是特别有经验,所以ClassTag
-s对我来说有点神奇。
如何解决这个代码片段,这样既sc.broadcast
(其中预计ClassTag
)和SizeEstimator.estimate
(其预计的AnyRef
)都开心吗?
是的,我明白了从'AnyRef'继承所施加的限制。感谢您帮助我理解正确的语法。 –