2017-10-18 26 views
0

Dans certains codes Spark, j'ai vu que les programmeurs utilisent un tel code pour créer SparkContextComment obtenir HiveContext de JavaSparkContext

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

Mais j'ai toujours utilisé ce genre de code pour créer JavaSparkContext.

SparkConf sparkConf = new SparkConf().setAppName("Simple App").setMaster("local"); 
JavaSparkContext spark = new JavaSparkContext(sparkConf); 

De la dernière partie du code, est-il possible que je pourrais obtenir un contexte Hive pour effectuer des opérations sur les tables Hive?

Merci!

+0

Également avec SparkSession, je ne peux pas utiliser la méthode parallelize(). Toute alternative? Je ne comprends pas quand utiliser SparkSession et JavaSparkContext. Le guide de programmation Java d'Apache Spark utilise les deux selon leurs besoins. http://spark.apache.org/docs/latest/rdd-programming-guide.html –

Répondre

0

Vous utilisez Spark 2.0 ou version ultérieure qui n'utilise plus SQLContext. SparkSession avec enableHiveSupport est un remplacement suffisant.

Donc tout ce que vous avez à faire est session instance que vous avez déjà.

+0

Merci! J'utilise actuellement Spark 2.2.0 et je suis nouveau. Est-ce que JavaSparkContext a un avantage sur SparkSession? Ou JavaSparkContext va être déprécié dans le futur? –

0

Enfin trouvé la solution.

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

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