2016-10-04 32 views
0
JavaPairRDD<String, Tuple2<Tuple2<String, Integer>, Double>> accountNew = 
     accountRecPair.join(accountCnt).join(accountSum); 

如何使用Java

(Key, (value)) 
------------------------------ 
(12,(ID1,12,1062.0,2),68605.0)) 

我想沒有MyOutput中 「(」 和 「)」


ID1,12,1062.0,2,68605.0 

回答

0

格式化加入RDD的輸出由於元組是不集合(它們更像案例類),沒有簡單的方法來扁平化結構。你必須在每次連接之後顯式地映射你的結果,以提取數據嵌套的元組結構,並將它們放在一個平面元組結構中。

+0

感謝您的答覆,如果你不介意的話,可以請你分享如何扁平化的代碼片斷,然後我會努力推動,我對Java,我學會了Java來使用BIG數據工具。再次感謝您的回覆 – Appala

+0

問題是,我不確定你的數據結構是什麼,因爲缺乏連貫性或解釋代碼片段 – Wilmerton

0
JavaRDD<String> outputFile = accountNew.map(
    new Function< Tuple2<String, Tuple2<Tuple2<String, Integer>, Double>>, String>() { 

     public String call(
       Tuple2<String, Tuple2<Tuple2<String, Integer>, Double>> rec) 
       { 
        String orderRec ; 
        // orderRec = rec._1 ; 
        Tuple2<Tuple2<String, Integer>, Double> rec1 = rec._2() ; 
        Tuple2<String, Integer> rec2 = rec1._1() ; 

        orderRec = rec2._1 + "," + rec2._2().toString() + "," + rec1._2().toString() ; 

        return orderRec; 
        }   
    } 
) ; 

這是我做格式化輸出。

塊引用