2
이 조각 [*]에서 찾아 보게한다 "결합"RDD 지원 스파크하지 않습니다왜
val la = List(Array(2, 3, 5), Array(7, 11, 13))
la.flatten
반환 이제
res1: List[Int] = List(2, 3, 5, 7, 11, 13)
을, 나는 스파크와 함께 놀았 던 내가 발견 문제가있을 때. 코드 조각 : 오른쪽 측 표현 유형에 RDD[Array[String]]
처럼 그대로
val myRdd: RDD[String] = sc.textFile("myFilePath", 10) map (_.split("\n"))
컴파일하지 않습니다 [*], 나는 트릭 할 것 평평하게 생각했다
val myRdd: RDD[String] = (sc.textFile("myFilePath", 10) map (_.split("\n"))).flatten
을 그러나 RDD
은이 작업을 제공하지 않습니다. 내 질문은 여기로
flatten
을 지원하지 않는 RDD이면의 (설계) 이유는 무엇입니까?- RDD 작동 방식에 대한 중요한 부분을 놓치고 있습니까?
P. 난 그냥 내가
val myRdd: RDD[String] = (sc.textFile("myFilePath", 10) map (_.split("\n"))).flatMap(x => x)
Thx! 위대한 발언. 문제가 내 질문에 대한 답변입니다. 아직도, 나는'평평한'이 중복 되는가'scala'가 그것을 제공하는 이유는 확신하지 못한다? 나는 다른 higher-order 함수가 있기 때문에 그것이 제공되어야한다고 생각한다. – GA1
@ GA1 스칼라 컬렉션과 스파크는 다른 아이디어로 다른 팀에서 만들어졌으며 RDD는 일반 컬렉션과는 조금 다릅니다. 관련 문제를 읽고 요청을 링크하면 해당 시도가 시도 된 것을 알 수 있지만 devs에 따르면 구현하기가 어려우며 동일한 기능을 제공하는 플랫 맵 때문에 실제 이점이 없다고 생각하지 않습니다. 오히려 더 영향력있는 것에 자원을 투자하십시오. – puhlen