2017-04-18 10 views
0

次のように私は、コードの一部をしました:><リストにScala.WrappedArrayからの変換

List<Integer> indexes = joinedCols 
      .map(x-> ((Tuple2)x)._1) 
      .collect(); 

    return indexes; 

私は私が見るデバッガでそれを確認したときに、私は、indexesしかしタイプList<Integer>であることが期待されますタイプはWrappedArrayです。したがって、Listのように動作せず、返されたリストを越えてトラバースしたいときはエラーが発生します(for (Integer i : indexes))。この場合、基礎となるリストをタイプList<Integer>として返すにはどうすればよいですか?

+0

解決策ではありませんが、私が見つけた回避策は、(Object i:indexes)のようにリストを走査することです。 – SpiderRico

+0

joinedColのタイプは何ですか? – puhlen

+0

@puhlen JavaPairRDD – SpiderRico

答えて

1

私は、私はそれはあなたがデバッガで見る何WrappedArray

のタイプです見デバッガでそれをチェックするときしかし、値のクラスですが、それはListインタフェースを実装しています。したがって、Listとして動作します(ただし、Listインターフェイスの多くの操作はオプションであり、ここではサポートされていません)。

と私はあなたが生Tuple2にキャストすることにより、型情報を削除するためですfor (Integer i : indexes)

として返されたリストを経由トラバースするときにエラーが発生します。 JavaPairRDD<Integer, SomeType>があると仮定すると、キャストを削除するだけでList<Integer>が得られ、このように反復することができます。

関連する問題