簡體   English   中英

獲取Scala / Spark中的RDD類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM