2017-05-08 12 views
2

にRDDのタイプを取得しますが、私はRDDを持っている場合、私は次のタイプ今タイプは、ここで使用する権利単語である場合、私はわからないスカラ座/スパーク

RDD[(Long, Array[(Long, Double)])] 

のRDDを持っているとしましょう、実行時に(上記のように)そのタイプをどのように見つけることができますか?

私は基本的に2つのRDDをランタイムに比較して、同じ種類のデータ(それ自体が異なるかもしれない値)を保存しているかどうかを確認したいのですが、別の方法がありますか?また、私は次のコード

RDD [(ロング、配列[(ロング、ダブル)])]、実行時に動的に発見された
sc.getPersistentRDDs(0).asInstanceOf[RDD[(Long, Array[(Long, Double)])]] 

を使用してRDD型のインスタンスとしてキャッシュRDDを取得したいです同じタイプの別のRDDに基づく。 RDDから実行時にこの値を取得する方法はありますか?

答えて

1

あなたは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) 
を比較することができます