阿帕奇SparkContext
有一个方法:
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
)都满意?