복붙노트

[SCALA] 스파크 쉘을 사용할 때 SparkContext가 sparkConf.set (...)를 사용하여 정의

SCALA

스파크 쉘을 사용할 때 SparkContext가 sparkConf.set (...)를 사용하여 정의

스파크에서 SparkContext을 만드는 데 사용되는 SparkConf에 대한 옵션을 지정하는 3 차 가지 방법이 있습니다 :

스파크 쉘을 사용하는 경우 그러나 SparkContext 이미라는 변수 사우스 캐롤라이나, 당신은 쉘 프롬프트가 시간에 의해 생성됩니다. 스파크 쉘을 사용하는 경우, 어떻게 당신이 어떤 스칼라 문을 실행할 수있는 기회를하기 전에 SparkContext이 이미 만든 경우, 구성 옵션을 설정하려면 위의 목록에서 옵션 # 3를 사용합니까?

특히, 나는 KYRO 직렬화 및 GraphX를 사용하는 것을 시도하고있다. GraphX와 Kryo를 사용하는 처방 방법은 SparkConf 인스턴스를 사용자 정의 다음 스칼라 문을 실행하는 것입니다 :

GraphXUtils.registerKryoClasses( sparkConf )

스파크 쉘을 실행할 때 어떻게이 작업을 수행합니까?

해결법

  1. ==============================

    1.스파크 2.0 이상

    스파크 2.0 이상

    당신은 런타임에 일부 구성 옵션을 설정 SparkSession.conf.set 방법을 사용할 수 있어야하지만, SQL 구성에 주로 제한됩니다.

    스파크 <2.0

    당신은 단순히 기존의 컨텍스트를 중단하고 새로 만들 수 있습니다 :

    import org.apache.spark.{SparkContext, SparkConf}
    
    sc.stop()
    val conf = new SparkConf().set("spark.executor.memory", "4g")
    val sc = new SparkContext(conf)
    

    당신은 공식 문서에서 읽을 수 있듯이 :

    당신이 컨텍스트를 중지 볼 수 있도록 쉘이 시작되고 나면에만 적용 옵션입니다.

    당신은 항상 기본 컨텍스트 할 사용됩니다 필요한 매개 변수를 설정하는 쉘을 촉발 구성 파일이나 --conf 인수를 사용할 수 있습니다. Kryo의 경우 당신은보고에서해야 :

    스파크 구성에 압축 및 직렬화를 참조하십시오.

  2. from https://stackoverflow.com/questions/31397731/customize-sparkcontext-using-sparkconf-set-when-using-spark-shell by cc-by-sa and MIT license