저는 쪽매 세공 파일에있는 500K 행 스파크 DataFrame을 가지고 있습니다. Spark (RStudio and R 3.3.1)에서 spark 2.0.0과 SparkR 패키지를 사용하고 있습니다. 모두 4 코어와 8GB RAM을 갖춘 로컬 시스템에서 실행됩니다.SparkR의 수집이 왜 그렇게 느린가요?
R에서 작업 할 수있는 데이터 집합의 생성을 용이하게하기 위해 collect() 메서드를 사용하여 Spark DataFrame을 R로 가져옵니다. 이렇게하려면 약 3 분이 소요되며 이는 읽는 데 걸리는 시간보다 훨씬 길다. data.table 패키지를 사용하여 동일한 크기의 CSV 파일
가 인정 하듯이, 마루 파일은 압축 및 압축 해제에 필요한 시간은 문제의 일부가 될 수 있지만, 나는 수집 방법이 설명의 방법으로 특히 천천히, 그리고 작은 것에 대해 인터넷에서 다른 의견을 발견했습니다.
나는 sparklyr에서 동일한 작업을 시도했으며 훨씬 빨라졌습니다. 불행히도 sparklyr에는 SparkR만큼 쉽게 조인과 필터 내부에 날짜 경로를 수행 할 수있는 기능이 없으므로 SparkR을 사용하여 막혔습니다. 또한 두 패키지를 동시에 (즉, SparkR 호출을 사용하여 쿼리를 실행 한 다음 스파크 릴을 사용하여 해당 스파크 오브젝트에 액세스 할 수 있음) 두 가지를 사용할 수 있다고 생각하지 않습니다.
비슷한 경험을 가진 사람이 있습니까? SparkR의 collect() 메서드가 상대적으로 느린 이유에 대한 설명이 있습니까?
500K 라인 예제는 한 가지 예일뿐 300M 행이있는 테이블에서 가져온 것입니다. Spark은 내 설정에서이 작업을 수행해야하지만 Spark와 R 사이의 데이터 이동 속도가 매우 느립니다. –