SparkContext,
JavaSparkContext,
SQLContext
et SparkSession
?SparkSession
?SparkSession
?SQLContext
, SparkContext
et JavaSparkContext
sont-elles également dans SparkSession
?parallelize
ont des comportements différents dans SparkContext
et JavaSparkContext
. Comment se comportent-ils dans SparkSession
?Comment puis-je créer ce qui suit à l'aide d'un SparkSession
?
RDD
JavaRDD
JavaPairRDD
Dataset
Existe-t-il une méthode pour transformer un JavaPairRDD
en Dataset
ou un Dataset
en JavaPairRDD
?
sparkContext
est un Scala point d'entrée d'implémentation et JavaSparkContext
est un Java wrapper de sparkContext
.
SQLContext
est le point d'entrée de SparkSQL qui peut être reçu de sparkContext
. Avant 2.xx, RDD, DataFrame et Data-set étaient trois abstractions de données différentes. Depuis Spark 2.xx, les trois abstractions de données sont unifiées et SparkSession
est le point d'entrée unifié de Spark.
Une note supplémentaire est, RDD destiné aux données non structurées, les données fortement typées et les DataFrames sont destinés aux données structurées et vaguement typées. Vous pouvez vérifier
Existe-t-il une méthode pour convertir ou créer un contexte à l'aide de Sparksession?
oui. sa sparkSession.sparkContext()
et pour SQL, sparkSession.sqlContext()
Puis-je remplacer complètement tout le contexte en utilisant une seule entrée SparkSession?
oui. vous pouvez obtenir les contextes respectifs de sparkSession.
Toutes les fonctions de SQLContext, SparkContext, JavaSparkContext etc. sont-elles ajoutées dans SparkSession?
Pas directement. vous devez obtenir le contexte respectif et l'utiliser, quelque chose comme la compatibilité descendante
Comment utiliser une telle fonction dans SparkSession?
obtenir le contexte respectif et en faire usage.
Comment créer ce qui suit à l'aide de SparkSession?
sparkSession.sparkContext.parallelize(???)
sparkSession.sparkContext.parallelize(???).map(//making your data as key-value pair here is one way)
Explication de spark code source sous branch-2.1
SparkContext: Point d'entrée principal pour Spark. Un SparkContext représente la connexion à un cluster Spark, et peut être utilisé pour créer RDD, accumulateurs et variables de diffusion sur ce cluster.
Un seul SparkContext peut être actif par JVM. Vous devez stop()
le SparkContext actif avant d'en créer un nouveau. Cette limitation peut éventuellement être supprimée; voir SPARK-2243 pour plus de détails.
JavaSparkContext: Une version Java-friendly de [[org.Apache.spark.SparkContext]] qui retourne [[org.Apache.spark.api.Java.JavaRDD]] et fonctionne avec Java collections au lieu de Scala celles.
Un seul SparkContext peut être actif par JVM. Vous devez stop()
le SparkContext actif avant d'en créer un nouveau. Cette limitation peut éventuellement être supprimée; voir SPARK-2243 pour plus de détails.
SQLContext: Le point d'entrée pour travailler avec des données structurées (lignes et colonnes) dans Spark 1.x.
Depuis Spark 2.0, ceci est remplacé par [[SparkSession]]. Cependant, nous gardons la classe ici pour des raisons de compatibilité descendante.
SparkSession: Le point d'entrée de la programmation Spark avec l'API Dataset et DataFrame.
Spark Context est Class in Spark API qui est la première étape pour construire l'application spark. Fonctionnalité de spark context is to create memory in RAM we call this as driver memory, allocation of number of executers and cores in short its all about the cluster management. Spark Le contexte peut être utilisé pour créer un RDD et des variables partagées. Pour y accéder, nous devons en créer un objet.
De cette façon, nous pouvons créer Spark Context :: var sc = new SparkContext ()
Spark Session, c'est un nouvel objet ajouté depuis spark 2.x qui remplace le contexte SQL et le contexte Hive. Auparavant, nous avions deux options, dont une est le contexte SQL qui est Le moyen de faire l'opération SQL sur Dataframe et le second est le contexte Hive qui gère les éléments liés à la connectivité Hive et récupère/insère les données depuis/vers les tables Hive.
Depuis l'arrivée de 2.x, nous pouvons créer SparkSession pour l'opération SQL sur Dataframe et si vous avez un travail lié à Hive, appelez simplement la méthode enablehivesupport (), vous pouvez alors utiliser SparkSession pour les opérations SQL liées à Dataframe et Hive.
De cette façon, nous pouvons créer SparkSession pour une opération SQL sur Dataframe
val sparksession = SparkSession.builder (). getOrCreate ();
La deuxième façon consiste à créer SparkSession pour une opération SQL sur Dataframe ainsi que Hive Operation.
val sparkSession = SparkSession.builder (). enableHiveSupport (). getOrCreate ()
Je vais parler de Spark version 2.x uniquement.
SparkSession: C'est un point d'entrée principal de votre spark application. Pour exécuter n'importe quel code sur votre spark, c'est la première chose que vous devez créer.
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local").appName("Word Count")\
.config("spark.some.config.option", "some-value")\
.getOrCreate()
SparkContext: C'est un objet (propriété) interne de SparkSession. Il est utilisé pour interagir avec Low-Level API
Grâce à SparkContext
, vous pouvez créer RDD
, accumlator
et Broadcast variables
.
dans la plupart des cas, vous n'aurez pas besoin de SparkContext
. Vous pouvez obtenir SparkContext
à partir de SparkSession
val sc = spark.sparkContext