2017-05-10 8 views
0

mkString 메소드를 스칼라에서 성공적으로 사용할 수 있습니다. 하지만 java를 사용하여 작업하는 동안 java7에 대한 mkString 메소드가 존재하지 않습니다. 그래서 거기에 내가 자바에서 같은 일을 할 수있는 방법이 있습니다.Java 7에서 scala.collection.TraversableOnce.mkString() 메소드를 사용하기위한 대체 또는 대체 방법이 있습니까?

val records: util.List[Tuple2[Void, Array[AnyRef]]] = dataSource.collect 
    import scala.collection.JavaConversions._ 
    for (record <- records) { 
     println(record.f1.mkString(",")) 
    } 
+0

'f1'이란 무엇입니까? 'JavaConverters'를 선호합니다. 그렇지 않으면 그냥 자바 목록을 스칼라 컬렉션으로 변환하고 mkString을 사용해야합니다. –

+0

org.apache.flink.api.java.tuple.Tuple2는 튜플에 2 개의 vaue를 취합니다. 위의 코드에서 주어진 것처럼 : Tuple2 [Void, Array [AnyRef]] 첫 번째 값에 액세스하려면 f0을 사용하고 두 번째 부분 (Array [AnyRef]) 값에 액세스하려면 f1을 사용합니다. JavaConverters를 사용해 보았습니다. 그러나 문제는 여전히 지속됩니다. – Sangeeta

답변

1

당신은 당신의 배열 요소의 문자열 표현을 얻을 수 Arrays.deepToString를 사용할 수 있습니다

은 아래 참조 내 코드입니다.

List<Tuple2<Void, Object[]>> records= dataSource.collect(); 
    Tuple2<Void, Object[]> record = records.iterator().next(); 
    System.out.println(Arrays.deepToString(record.f1));