2017-11-18 4 views
-1

스트리밍을 시작하기에 새롭고 맵 작동 방식을 이해할 수 없습니다. 나는 내가 쓴 그래서 생성자에서 통과 후 스트림에서 몇 가지 포인트를 대기열 할 수 있습니다 :스파크 스트리밍 : 대기열로 매핑 지점

val data = inp.flatMap(_.split(",")) 
val points = data.map(_.toDouble) 
val queue: Queue[Point] = new Queue[Point] 
points.foreachRDD(rdd => { 
rdd.map(x => queue.enqueue(new Point(x,1))) 
}) 

내가 큐의 크기가 항상 0입니다 인쇄 할 때.

답변

0

Spark의 모든 변환은 게으르며 즉시 결과를 계산하지 않습니다. 대신 일부 기본 데이터 세트에 적용된 변환을 기억합니다. 변환은 드라이버 프로그램에 결과가 반환되어야하는 경우에만 계산됩니다.

여기 지도 함수를 적용하고 있기 때문에, 그것은 게으르게 평가 computed.Instead되지 않습니다이하는 DAG가 내장되어 있습니다. 액션이 호출 될 때만 평가됩니다. 이것을 구체화하기 위해 수집이나 다른 조치를 시도 할 수도 있습니다.

자세한 내용은 여기를 참조하십시오. 다소 나이지만 유익합니다. https://training.databricks.com/visualapi.pdf