Разница между sparkContext JavaSparkContext Sqlcontext SparkSession?
- в чем разница между
sparkContext,
javaSparkContext,
SQLContext
иSparkSession
.? - есть ли способ конвертировать или создавать контекст с помощью
Sparksession
? - могу ли я полностью заменить весь контекст, используя одну единственную запись
SparkSession
? - выполняет все функции в
SQLContext
,SparkContext
,JavaSparkContext
etc добавлены вSparkSession
? - некоторые функции, такие как
parallelize
имеет различное использование вSparkContext
иJavaSparkContext
. Как использовать такую функцию вSparkSession
? -
как создать следующее С помощью
SparkSession
?- RDD
- JavaRDD
- JavaPairRDD
- Dataset
есть ли какой-либо метод преобразования JavaPairRDD
на Dataset
или Dataset
на JavaPairRDD
?
3 ответов
sparkContext
является точкой входа в реализацию Scala и JavaSparkContext
является Java-оболочкой sparkContext
.
SQLContext
является точкой входа SparkSQL, который может быть получен от sparkContext
.До 2.х.х, РДД ,таблицы данных и набора данных были три разных абстракций данных.С Искры 2.X. x, все три абстракции данных объединены и SparkSession
является единой точкой входа Spark.
дополнительное Примечание: RDD предназначен для неструктурированных данных, строго типизированных данных и фреймов данных предназначены для структурированных и слабо типизированных данных. Ты можешь!--15-->Регистрация
есть ли способ конвертировать или создавать контекст с помощью Sparksession ?
да. его sparkSession.sparkContext()
и для SQL, sparkSession.sqlContext()
могу ли я полностью заменить весь контекст, используя одну запись SparkSession ?
да. вы можете получить соответствующие contexs от sparkSession.
все ли функции в SQLContext, SparkContext,JavaSparkContext и т. д. добавляются в SparkSession?
не напрямую. вы должны получить соответствующий контекст и использовать его.что-то вроде обратной совместимости
как использовать такую функцию в SparkSession?
сделать соответствующий контекст и использовать его.
Как создать следующее использование SparkSession?
- RDD может быть создан из
sparkSession.sparkContext.parallelize(???)
- JavaRDD то же самое относится к этому, но в реализации java
- JavaPairRDD
sparkSession.sparkContext.parallelize(???).map(//making your data as key-value pair here is one way)
- Dataset что sparkSession возвращает Dataset если это структурированные данные.
объяснение Из исходного кода spark под веткой-2.1
SparkContext: Главная точка входа для функциональности Spark. SparkContext представляет соединение с Spark кластер, и может использоваться для создания RDDs, аккумуляторов и широковещательных переменных на этом кластере.
на JVM может быть активен только один SparkContext. Вы должны stop()
активный SparkContext перед
создание нового. Это ограничение может быть в конечном итоге удалено; см. SPARK-2243 для новые подробности.
JavaSparkContext: Дружественная к Java версия [[org.апаш.искра.SparkContext]], который возвращает [[org.апаш.искра.прикладной программный интерфейс.Ява.JavaRDD]]s и работает с коллекциями Java вместо Scala.
на JVM может быть активен только один SparkContext. Вы должны stop()
активный SparkContext перед
создание нового. Это ограничение может быть в конечном итоге удалено; Подробнее см. SPARK-2243.
SQLContext: Этот точка входа для работы со структурированными данными (строками и столбцами) в Spark 1.x.
начиная с Spark 2.0, это заменяется на [[SparkSession]]. Тем не менее, мы сохраняем класс здесь для обратной совместимости.
SparkSession: Точка входа в Программирование Spark с помощью API Dataset и DataFrame.
контекст Spark-это класс в Spark API который является первым этапом для создания приложения spark. Функциональность контекста spark заключается в создании памяти в ОЗУ мы называем это памятью драйвера, выделением количества исполнителей и ядер, короче говоря, все об управлении кластером. Контекст Spark можно использовать для создания RDD и общих переменных. Для доступа к этому нам нужно создать объект it.
таким образом, мы можем создать контекст Spark:: var sc=new SparkContext()
Spark Session это новый объект, добавленный с spark 2.x который является заменой контекста Sql и контекста Hive. Ранее у нас было два варианта: один-контекст Sql, который является способом выполнения операции sql на Dataframe, а второй-контекст Hive, который управляет материалом, связанным с подключением Hive, и извлекает/вставляет данные из/в таблицы hive.
с 2.x пришел мы можем создать SparkSession для операции SQL на Dataframe, и если у вас есть Работа, связанная с Hive, просто вызывает метод enablehivesupport (), затем вы можете использовать SparkSession для операций SQL, связанных с Dataframe и hive.
таким образом, мы можем создать SparkSession для операции Sql на Dataframe
val sparksession=SparkSession.строитель.)(getOrCreate ();
Второй способ-создать SparkSession для операции Sql на Dataframe, а также операции Hive.
val sparkSession=SparkSession.строитель.)(enableHiveSupport ().getOrCreate ()