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)
아이디어가 있으십니까?
코드 단편을 형식화하십시오. –