비 드라이버, 비 근로자는 스파크 세션을 생성하고 데이터 집합에 CSV 파일을 읽을 수 있습니까?

hotmeatballsoup :

자바 8 스파크 2.4.5 (스칼라 2.12) 여기. 또한 스파크 매우 새로운입니다.

나는 이해하려고 노력 중이 야 코드가 스파크 드라이버 노드에서 실행하고 그것은 노동자 / 집행에 제출됩니다.

당신이 만들 때 특히, SparkContextSparkSession인스턴스를, 그 인스턴스화는 않습니다 항상 드라이버에서 발생해야? 아니면은 만들 수 있습니다 SparkContext/의 SparkSession(: 어느 스파크 드라이버가 아닌 근로자 / 집행자 인 자바 응용 프로그램입니다) 단지 일반 올드 'JVM 앱에서 인스턴스를?

세션에 대한 동감을 읽습니다. 예를 들어, 내가 지금 같은 CSV 파일을 읽을 때 :

sparkSession.read()
  .format("csv")
  .load(providedFile.getAbsolutePath());

사람들은 읽기 않습니다 항상 드라이버 또는 노동자 중 하나에서 실행해야한다, 또는 그들은 단지 단지 종속성에 풀 스파크 코어에 발생하는 "정상적인 자바 응용 프로그램"에서 실행할 수 있습니다?


편집 : 그것은이 만듭니다 아무것도 보이지 않는 SparkSession 것입니다 그럼, 기본적으로 "스파크 드라이버"내 유일한 질문은 : 어떻게하는 코드는 노동자 / 집행에 맡긴됩니다 드라이버에있는 코드를 실행하고 알 수 있습니까?

는 것이다 sparkSession.read()...드라이버에서 발생 또는 GET은 작업자 노드에 제출합니까?

무엇을 :

재 : "나는 노동자 / 집행에 맡긴 도착하는 코드가 실행 코드 드라이버에와 어떻게 알 수 있습니까"

일반적으로 어떤 변환은 RDD 또는 Dataframe에 수행하는 것이 (예를 들어,지도, flatmap, 필터, GROUPBY, reduceByKey 등을 위해) 집행에 일어날 것입니다. 집행에서 실행 얻을 것이다 이러한 변화를 호출하는 동안 당신은 일반적으로 함수 또는 폐쇄를 전달합니다.

당신은 예를 들어 작업 된 invoke "취" "수집"또는, 드라이버 데이터 다시 나타납니다 때 (에서 OutOfMemory 오류에주의). 당신이 드라이버에 수집 된 이러한 데이터에 할 것이 무엇이든간에 작업, 드라이버에 실행됩니다.

작업이 실행 프로그램과 일에 배포하는 경우에가는 많은 드라이버 밖으로 일이있다. 나는 이것에 대해 그 회담 시작에 불과으로 위의 포인터를 복용 추천 책이나 좋은 튜토리얼을 통해 갈 것입니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=364806&siteId=1