我不确定类型是否在这里使用是正确的词,但是假设我有以下类型的RDD
RDD[(Long, Array[(Long, Double)])]
现在如果我有RDD,如何在运行时找到它的类型(如上所述)?
我基本上想比较两个RDD,在运行时看看它们是否存储相同类型的数据(它自身的值可能不同),还有另一种方法吗?此外,我想使用以下代码
将缓存的RDD作为RDD类型的实例sc.getPersistentRDDs(0).asInstanceOf[RDD[(Long, Array[(Long, Double)])]]
其中RDD [(Long,Array [(Long,Double)])]在运行时基于另一个相同类型的RDD动态发现。 那么有没有办法从RDD获取运行时的这个值?
答案 0 :(得分:1)
您可以使用Scala的TypeTag
s
import scala.reflect.runtime.universe._
def checkEqualParameters [T1, T2](x : T1, y : T2)(implicit type1 : TypeTag[T1], type2 : TypeTag[T2]) = {
type1.tpe.typeArgs == type2.tpe.typeArgs
}
然后比较
checkEqualParameters (rdd1, rdd2)