브로드 캐스트 변수를 사용한 분산 캐싱 : Apache Spark



이 블로그 게시물에서는 브로드 캐스트 변수를 사용한 분산 캐싱에 대해 설명하고 Spark 프로그래밍에서 큰 값을 효율적으로 배포하는 방법을 시작할 수 있습니다.

Prithviraj Bose 제공





브로드 캐스트 변수는 대규모 데이터 세트를 실행기에 캐시해야 할 때 유용합니다. 이 블로그는 시작하는 방법을 설명합니다.

브로드 캐스트 변수 란 무엇입니까?



Apache Spark의 브로드 캐스트 변수는 읽기 전용 인 실행기간에 변수를 공유하기위한 메커니즘입니다. 브로드 캐스트 변수가 없으면 이러한 변수는 모든 변환 및 작업에 대해 각 실행기에 전달되며 이로 인해 네트워크 오버 헤드가 발생할 수 있습니다. 그러나 브로드 캐스트 변수를 사용하면 모든 실행기에 한 번 제공되며 나중에 참조 할 수 있도록 캐시됩니다.

브로드 캐스트 변수 사용 사례

변환을 수행하는 동안 큰 우편 번호 / 핀 코드 테이블을 조회해야한다고 상상해보십시오. 여기에서 매번 큰 조회 테이블을 실행자에게 보내는 것은 불가능하며 매번 데이터베이스를 쿼리 할 수도 없습니다. 해결책은이 조회 테이블을 브로드 캐스트 변수로 변환하는 것이며 Spark는 향후 참조를 위해 모든 실행기에 캐시합니다.

자바 객체 배열 만들기

위의 개념을 이해하기 위해 간단한 예를 들어 보겠습니다. 국가 이름과 수도가 포함 된 CSV 파일이 있습니다. CSV 파일을 찾을 수 있습니다. 여기 .



CSV-file-distributed-caching

국가의 인구 통계 데이터를 처리하고 있고 해당 국가의 수도를 가져와야한다고 가정합니다. 이 경우 CSV 파일의 데이터를 브로드 캐스트 변수로 변환 할 수 있습니다.

먼저지도에 CSV 파일을로드합니다. 파일이 발견되면 메서드는 일부 (국가) 그렇지 않으면 반환 없음 .

CSV 파일을 성공적으로로드 한 후지도를 브로드 캐스트 변수로 변환하여 프로그램에서 사용합니다.

Java 구현 및 확장의 차이점

위의 코드 스 니펫에서 CSV 파일을지도에로드합니다. 국가 그지도를 브로드 캐스트 변수로 변환합니다. countriesCache . 그 후, 우리는 다음의 키로부터 RDD를 생성합니다. 국가 . 에서 searchCountryDetails 메서드는 사용자 정의 문자로 시작하는 모든 국가를 검색하고 메서드는 대문자와 함께 국가의 RDD를 반환합니다. 방송 변수 countrieCache 수도를 찾는 데 사용됩니다.
이렇게하면 검색 할 때마다 전체 CSV 데이터를 보낼 필요가 없습니다.

에 대한 코드 searchCountryDetails 아래에 나와 있습니다.

전체 소스 코드를 찾을 수 있습니다. 여기 .

SQL 쿼리의 if 문

질문이 있으십니까? 댓글 섹션에서이를 언급하면 ​​다시 연락 드리겠습니다.

관련 게시물:

Spark Accumulators 설명

Apache Spark combineByKey 설명