[英]Get Type of RDD in Scala/Spark
我不確定type是否是這里使用的正確單詞,但是假設我有一個以下類型的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獲取運行時的這個值?
您可以使用Scala的TypeTag
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.