私はスパークするために新しいです、私はそれをソートし、キーを比較することができるJavaPairRDDを作成したい、コードのサンプルを示すように、 JavaPairRDDしかし、関数sortByKey()を使用した後、私はそれが整数としてではなく文字列としてキーを扱うことに気づいた。例えばどのようにintキーを使用してペアrddを作成する
JavaRDD<String> csvFileC = sc.textFile(currentFile);
JavaPairRDD<Integer, String> pairsC = csvFileC.mapToPair(new keyData()).sortByKey(true).cache();
pairsCは、以下の要素が含まれている場合:
(1など)、(2、あなた)、(12、ER)、(3、銅)、(22、HHをHH、22(、)、2(、)えー、12(、)として、
のでsortByKey()を使用して、もう一度それを表示した後、私はそれが好き見つけます)、(3、cu) それはない整数として文字列としてキーを扱う意味するが、以下のように、私が求めて結果が(1あなたに:)
:
(1、など)、(2、あなたに)、(3、銅) 、(12、er)、(22、hh)
どのように私はintとして私のキーを扱うことができますか?詳細は 、これは私があなたのコードでも動作しますPairRDD
public static class keyData implements PairFunction <String, Integer, String>
{
public Tuple2<Integer, String> call(String x) {
String[] strs = x.split(",");
return new Tuple2(strs[0], x.replaceFirst(strs[0]+",", ""));
}
がすることができません推奨まったく同じキーデータ機能を修正しましたtuple2を返すように呼び出しを修正しますか?もしそうなら、それを行う方法よりも?私は整数として鍵を必要とするので –
hammadspark
はい、それは私の答えを少し拡張しました。 –
そしておそらくそれは非論理的ですが、私のコードは正常に動作します – hammadspark