2017-10-18 9 views
0
일부 스파크 코드에서

에서 HiveContext을 얻는 방법, 나는 프로그래머가 는 JavaSparkContext

SparkSession session = SparkSession 
     .builder() 
     .appName("Spark Hive Example") 
     .config("spark.sql.warehouse.dir", warehouseLocation) 
     .enableHiveSupport() 
     .getOrCreate(); 

SparkContext

을 만들 수와 같은 코드를 사용하는 것이 보았다하지만 난 항상 JavaSparkContext를 생성하는 코드 같은 종류를 사용하고 있습니다.

코드의 후반부에서
SparkConf sparkConf = new SparkConf().setAppName("Simple App").setMaster("local"); 
JavaSparkContext spark = new JavaSparkContext(sparkConf); 

, 내가 하이브 테이블에 대한 작업을 수행 할 수있는 하이브 문맥을 얻을 수있는 방법은 무엇입니까?

감사합니다.

+0

SparkSession에서도 parallelize() 메소드를 사용할 수 없습니다. 어떤 대안? 나는 SparkSession과 JavaSparkContext를 언제 사용해야하는지 이해하지 못한다. Apache Spark의 자바 프로그래밍 가이드는 필요에 따라 둘 다 사용합니다. http://spark.apache.org/docs/latest/rdd-programming-guide.html –

답변

0

더 이상 SQLContext을 사용하지 않는 Spark 2.0 이상을 사용 중입니다. SparkSessionenableHiveSupport으로 대체하면 충분합니다.

당신이해야 할 일은 이미 가지고있는 session 인스턴스입니다.

+0

감사! 현재 Spark 2.2.0을 사용하고 있으며 새로운 기능을 제공합니다. JavaSparkContext는 SparkSession보다 이점이 있습니까? 또는 JavaSparkContext 향후 언젠가 depreciated 얻을 것인가? –

0

마지막으로 해결책을 찾았습니다.

SparkSession spark = SparkSession 
        .builder() 
        .appName("SampleApp") 
        .master("local") 
        .enableHiveSupport() 
        .getOrCreate(); 

JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());