Разница между sparkContext JavaSparkContext Sqlcontext SparkSession?
- в чем разница между
sparkContext,javaSparkContext,SQLContextиSparkSession.? - есть ли способ конвертировать или создавать контекст с помощью
Sparksession? - могу ли я полностью заменить весь контекст, используя одну единственную запись
SparkSession? - выполняет все функции в
SQLContext,SparkContext,JavaSparkContextetc добавлены в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 ()