2017-11-06 4 views
0

EMR-Spark 버전 2.2.0/2.1.0에서 스파크 - 쉘을 사용했습니다. 간단한 개체 (내 CSV 파일에 1 열만 포함되어 있고 2MB 미만)을 브로드 캐스팅하려고 시도하는 동안 설명서에 제시된대로 그래도 각 실행 메모리와 드라이버 메모리에 보관되지 않는 것으로 나타났습니다 https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-TorrentBroadcast.html스파크 브로드 캐스트가 실행 프로그램 메모리에 저장되지 않습니다

방송 전에 첨부 된 인쇄 화면 (예 : sc.broadcast (arr_collected))과 방송 후에 내 결론을 보여줍니다. 또한 작업자의 기계 메모리 사용량을 확인하고 Spark UI와 동일하게 방송 이후에는 변경되지 않습니다. 여기에 제안처럼

1 print screen before broadcast

2 print screen after broadcast

은 'log4j.logger.org.apache.spark.storage.BlockManager는 = TRACE'를 추가 한 후 방송 프로세스에 대한 로그를 첨부 - https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-blockmanager.html

3 print screen broadcast logging

아래의 코드가있다 -

val input = "s3://bucketName/pathToFile.csv" 
val df = spark.read.format("com.databricks.spark.csv").option("header", "true").option("delimiter", ",").load(input) 
val df_2 = df_read_for_bc.withColumn("is_exist",lit("true").cast("Boolean")) 
val arr_collected = df_2.collect() 

val broadcast_map_fraud_locations4 = sc.broadcast(arr_collected) 

아이디어가 있으십니까?

+1

코드 단편을 형식화하십시오. –

답변

0

브로드 캐스트 변수를 사용하여 데이터에 가입하거나 작업을 수행 할 수 있습니까? 게으르므로 메모리를 사용하지 않을 수도 있습니다.

+0

맞습니다. 여기에 '방송 작동 방식에 대한 해설'에 대한 설명이 있습니다. - https://stackoverflow.com/questions/35754123/apache-spark-how-to-structure-code-of-a-spark-application 특히 - 때 - usin? rq = 1 –