복붙노트

[SCALA] SparkContext, JavaSparkContext,는 SqlContext 및 SparkSession의 차이?

SCALA

SparkContext, JavaSparkContext,는 SqlContext 및 SparkSession의 차이?

데이터 집합 또는 JavaPairRDD에 데이터 집합에 JavaPairRDD를 변환하는 방법이 있나요?

해결법

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

    1.sparkContext는 스칼라 구현 진입 점입니다 및 JavaSparkContext는 sparkContext의 자바 래퍼입니다.

    sparkContext는 스칼라 구현 진입 점입니다 및 JavaSparkContext는 sparkContext의 자바 래퍼입니다.

    는 SqlContext가 2.XX에 sparkContext.Prior로부터 수신 될 수 SparkSQL의 엔트리 포인트이다 RDD, DataFrame 및 데이터 세트는 세 가지 다른 데이터 abstractions.Since 점화 2.XX, 추상화 통일되어 SparkSession가 통합 입력 데이터 모두 세이었다 스파크의 가리 킵니다.

    추가 참고 RDD는 구조화되지 않은 데이터, 강력한 형식의 데이터를 의미하고 DataFrames은 구조와 느슨한 타입 데이터에 대한 것입니다. 당신은 확인할 수 있습니다

    예. 그 sparkSession.sparkContext () 및 SQL, sparkSession.sqlContext에 대한 ()

    예. 당신은 sparkSession에서 각각의 컨텍스트를 얻을 수 있습니다.

    아니 직접. 당신은 이전 버전과의 호환성과 같은 하다구의 각각의 상황과 메이크업 사용을 가야

    각각의 상황과 그것의 메이크업 사용을 얻는다.

  2. ==============================

    2.지사 2.1에서 불꽃 소스 코드와 설명

    지사 2.1에서 불꽃 소스 코드와 설명

    SparkContext :   스파크 기능을위한 주 진입 점. SparkContext은 스파크에 대한 연결을 나타냅니다   클러스터 및 해당 클러스터에 RDDs, 축전지, 방송 변수를 만들 수 있습니다.

    하나의 SparkContext은 JVM 당 활성화 될 수 있습니다. 당신은 전에) (활성 SparkContext를 중지해야합니다   새로 생성. 이러한 제한은 궁극적으로 제거 될 수있다; 자세한 내용은 SPARK-2243을 참조하십시오.

    JavaSparkContext :   [[org.apache.spark.SparkContext]]가 반환의 자바 용 버전   [[org.apache.spark.api.java.JavaRDD]]의 대신 스칼라 사람의 자바 콜렉션과 함께 작동합니다.

    하나의 SparkContext은 JVM 당 활성화 될 수 있습니다. 당신은 전에) (활성 SparkContext를 중지해야합니다   새로 생성. 이러한 제한은 궁극적으로 제거 될 수있다; 자세한 내용은 SPARK-2243을 참조하십시오.

    는 SqlContext :   스파크 1.x에서 구조화 된 데이터 (행과 열)와 협력 엔트리 포인트

    스파크 2.0로, 이는 [SparkSession]으로 대체된다. 그러나, 우리는 클래스를 유지하고 있습니다   이전 버전과의 호환성을 위해 여기.

    SparkSession :   데이터 집합 및 DataFrame API와 함께 불꽃을 프로그램에 대한 진입 점.

  3. ==============================

    3.스파크 컨텍스트 스파크 응용 프로그램을 구축하는 첫 번째 단계입니다 스파크 API의 클래스입니다. 스파크 컨텍스트의 기능은 우리가 클러스터 관리에 대한 짧은에 드라이버 메모리, executers 및 코어 수의 할당으로 모든이에게 전화 RAM 메모리를 만드는 것입니다. 스파크 문맥 RDD 공유 변수를 생성하는 데 사용할 수 있습니다. 이 액세스하려면 우리는 그것의 객체를 생성해야합니다.

    스파크 컨텍스트 스파크 응용 프로그램을 구축하는 첫 번째 단계입니다 스파크 API의 클래스입니다. 스파크 컨텍스트의 기능은 우리가 클러스터 관리에 대한 짧은에 드라이버 메모리, executers 및 코어 수의 할당으로 모든이에게 전화 RAM 메모리를 만드는 것입니다. 스파크 문맥 RDD 공유 변수를 생성하는 데 사용할 수 있습니다. 이 액세스하려면 우리는 그것의 객체를 생성해야합니다.

    우리는 스파크 컨텍스트 :: VAR 사우스 캐롤라이나 = 새로운 SparkContext를 만들 수 있습니다이 방법 ()

    스파크 세션이 SQL을 컨텍스트와 하이브 컨텍스트의 대체 불꽃 2.x는 이후 추가 된 새로운 객체입니다. 하나 Dataframe에서 SQL 작업을 수행하는 방법이며 초 /에서 하이브 테이블에 데이터를 삽입 / 재료 관련 하이브 연결을 관리하고 가져 오기 하이브 컨텍스트중인 SQL 상황처럼 앞서 우리는 두 가지 옵션을 가지고 있었다.

    2.X가) 우리는 Dataframe에 대한 SQL 작업에 SparkSession를 작성하고 당신이 어떤 하이브 관련 작업이있는 경우 단지 방법 enablehivesupport를 (호출 할 수 있습니다 온 이후 다음은 Dataframe 및 하이브 관련 SQL 작업 모두에 대한 SparkSession를 사용할 수 있습니다.

    이 방법으로 우리는 Dataframe에서 SQL 작업에 SparkSession를 만들 수 있습니다

    브로 sparksession SparkSession.builder = ()을 getOrCreate ().;

    두 번째 방법은 Dataframe에서 SQL 작업뿐만 아니라 하이브 운영을 위해 SparkSession를 만드는 것입니다.

    브로 sparkSession SparkSession.builder = (). enableHiveSupport (). getOrCreate ()를

  4. ==============================

    4.나는 스파크 버전 2.x 만에 대해 이야기합니다.

    나는 스파크 버전 2.x 만에 대해 이야기합니다.

    SparkSession : 그것은 당신의 스파크 응용 프로그램의 주 진입 점입니다. 당신의 불꽃에 코드를 실행하려면이 사용자가 만든 가장 먼저해야 할 일이다.

    from pyspark.sql import SparkSession
    spark = SparkSession.builder.master("local").appName("Word Count")\
    .config("spark.some.config.option", "some-value")\
    .getOrCreate()
    

    SparkContext : 그것은 SparkSession의 내부 객체 (속성)입니다. 당신이 RDD, accumlator 및 방송 변수를 만들 수 있습니다 SparkContext을 통해 낮은 수준의 API와 상호 작용하는 데 사용됩니다.

    대부분의 경우 당신은 SparkContext 필요하지 않습니다. 당신은 SparkSession에서 SparkContext를 얻을 수 있습니다

    val sc = spark.sparkContext
    
  5. from https://stackoverflow.com/questions/43802809/difference-between-sparkcontext-javasparkcontext-sqlcontext-and-sparksession by cc-by-sa and MIT license