Учебное пособие по Spark Java: универсальное решение для Spark на Java

[*]

Ява является эффективным языком программирования в разработке программного обеспечения, а Scala является доминирующим языком программирования, используемым в разработке больших данных. Сотрудничество обоих может привести к мощной комбинации. В этом Учебник по Spark Java, мы будем работать с программами Spark в среде Java.

Что такое Spark-Java?

Картинка1-2-528x122.png

Проще говоря, Spark-Java — это комбинированный подход к программированию. Большие данные проблемы. Искра написано на Ява а также Скала использует JVM для компиляции кода, написанного на Scala. Spark поддерживает множество языков программирования, таких как свинья, Улей, Скала и многие другие. Scala — один из самых известных языков программирования, когда-либо созданных для приложений Spark.

Потребность в Spark-Java

Shutterstock_1128638237-Converted-480x300.png

Большинство разработчиков программного обеспечения чувствуют себя комфортно, работая с Ява на уровне предприятия, где они вряд ли предпочитают Scala или любой другой тип языков. Spark-Java — это один из таких подходов, при котором разработчики программного обеспечения могут легко запускать все программы и приложения Scala в среде Java.

Теперь у нас есть краткое представление о Spark Java. Давайте теперь перейдем к следующему этапу, где мы узнаем о настройке среды для Spark Java. Я выстроил процедуру в виде шагов.

Настройка среды Spark-Java

Шаг 1:

  • Установите последние версии программы JDKа также JRE.

Без названия-300x178.png

Без названия-300x178.png

Шаг 2:

3-528x78.png

Шаг 3:

4-2-528x247.png

Шаг 4:

5-528x136.png

Шаг 5:

6-528x169.png

Шаг 6:

7-768x310.png

Шаг 7:

  • Установите дом и путь для следующего:
    • Ява
    • Установите новый Java_Home, как показано ниже.

jdk.png

  • Точно так же установите путь для Java Home, отредактировав переменные пути.

путьj.png

  • Хадуп
    • Установите новый Hadoop_Home, как показано ниже.

чч.png

- Similarly, Set Path for Hadoop Home by editing Path variables

hp.png

  • Искра
    • Установите новый Spark_Home, как показано ниже.

искра-дом.png

- Similarly, Set Path for Spark Home by editing Path variables

искра-путь.png

  • Мавен
    • Установите новый Maven_Home, как показано ниже.

mh.png

- Similarly, Set Path for Maven Home by editing Path variables

maven-path.png

  • Скала
    • Установите новый Scala_Home, как показано ниже.

Scalahome.png

- Similarly, Set Path for Scala Home by editing Path variables

скалапат.png

Теперь вы выполнили все требования для запуска Apache Spark на Java. Давайте попробуем пример программы Spark на Java.

Примеры в Spark-Java

Прежде чем мы приступим к фактическому выполнению примера программы Spark в среде Java, нам необходимо выполнить некоторые предварительные условия, которые я упомяну ниже в качестве шагов для лучшего понимания процедуры.

Шаг 1:

  • Откройте командную строку и запустите Spark в командной строке в качестве мастера.

9-2.png

Шаг 2:

  • Откройте новую командную строку и снова запустите Spark в командной строке, на этот раз в качестве рабочего вместе с IP-адресом мастера.

12-1.png

  • IP-адрес доступен по адресу Localhost:8080.

10-1.png

Шаг 3:

  • Откройте новую командную строку, и теперь вы можете запустить оболочку Spark вместе с IP-адресом мастера.

11.png

Шаг 4:

  • Теперь вы можете открыть Eclipse Enterprise IDE, настроить свое рабочее место и начать работу над своим проектом.

Шаг 5:

  • Установите природу Scala в Eclipse IDE и создайте новый проект maven.
  • Во-первых, мы начнем с POM.XML
  • Следующий код представляет собой файл pom.xml.
<project xmlns="
xmlns:xsi="
xsi:schemaLocation=" 
<modelVersion>4.0.0</modelVersion>
<groupId>Edureka</groupId>
<artifactId>ScalaExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
    <dependencies>
              <!--  -->
              <dependency>
              <groupId>org.apache.spark</groupId>
              <artifactId>spark-core_2.12</artifactId>
              <version>2.4.2</version>
              </dependency>
    </dependencies>
</project>

Шаг 6:

  • Начните с вашего приложения Scala.
  • Следующий код предназначен для файла приложения Scala.
package ScalaExample

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql._
import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType};

object EdurekaApp {
    def main(args: Array[String]) {
         val logFile = "C:/spark/README.md" // Should be some file on your system
         val conf = new SparkConf().setAppName("EdurekaApp").setMaster("local[*]")
         val sc = new SparkContext(conf)
         val spark = SparkSession.builder.appName("Simple Application").getOrCreate()
         val logData = spark.read.textFile(logFile).cache()
         val numAs = logData.filter(line => line.contains("a")).count()
         val numBs = logData.filter(line => line.contains("b")).count()
         println(s"Lines with a: $numAs, Lines with b: $numBs")
    spark.stop()
   }
}

Выход:

Строки с a: 62, Строки с b: 31

Теперь, когда у нас есть краткое представление о Spark Java, давайте перейдем к нашему варианту использования академической успеваемости учащихся, чтобы лучше изучить Spark Java.

Результаты учащихся на экзамене: Вариант использования

Подобно нашему предыдущему примеру, давайте настроим наши предварительные условия, а затем начнем с нашего Вариант использования. Наш вариант использования будет примерно Выступление студентов на экзаменах по нескольким важным предметам.

использованиекейс.png

Вот как выглядит наш код, теперь давайте выполним одну операцию за нашим вариантом использования.

  • Следующий код представляет собой файл pom.xml.
<project xmlns="
xmlns:xsi="
xsi:schemaLocation=" 
<modelVersion>4.0.0</modelVersion>
<groupId>ScalaExample3</groupId>
<artifactId>Edureka3</artifactId>
<version>0.0.1-SNAPSHOT</version>
    <dependencies>
                 <!--  -->
                 <dependency>
                          <groupId>org.apache.spark</groupId>
                          <artifactId>spark-core_2.12</artifactId>
                          <version>2.4.3</version>
                 </dependency>
                 <!--  -->
                 <dependency>
                         <groupId>org.apache.spark</groupId>
                         <artifactId>spark-sql_2.12</artifactId>
                         <version>2.4.3</version>
                 </dependency>
                 <!--  -->
                 <dependency>
                         <groupId>com.databricks</groupId>
                         <artifactId>spark-csv_2.11</artifactId>
                         <version>1.5.0</version>
                 </dependency>
      </dependencies>
</project>
  • Следующий код предназначен для файла приложения Scala.
package ScalaExample

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql._
import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType};

object EdurekaApp {
         def main(args: Array[String]) {
              val conf = new SparkConf().setAppName("EdurekaApp3").setMaster("local[*]")
              val sc = new SparkContext(conf)</pre>
              val sqlContext = new SQLContext(sc)
              val spark = SparkSession.builder.appName("Simple Application").getOrCreate()
              val customizedSchema = StructType(Array(StructField("gender", StringType, true),StructField("race", StringType, true),StructField("parentalLevelOfEducation", StringType, true),StructField("lunch", StringType, true),StructField("testPreparationCourse", StringType, true),StructField("mathScore", IntegerType, true),StructField("readingScore", IntegerType, true),StructField("writingScore", IntegerType, true)))
              val pathToFile = "C:/Users/Ravikiran/Downloads/students-performance-in-exams/StudentsPerformance.csv"
              val DF = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").schema(customizedSchema).load(pathToFile)
              print("We are starting from here...!")
              DF.rdd.cache()
              DF.rdd.foreach(println)
              println(DF.printSchema)
              DF.registerTempTable("Student")
              sqlContext.sql("SELECT * FROM Student").show()
              sqlContext.sql("SELECT gender, race, parentalLevelOfEducation, mathScore FROM Student WHERE mathScore > 75").show()
              sqlContext.sql("SELECT race, count(race) FROM Student GROUP BY race").show()
              sqlContext.sql("SELECT gender, race, parentalLevelOfEducation, mathScore, readingScore FROM Student").filter("readingScore>90").show()
              sqlContext.sql("SELECT race, parentalLevelOfEducation FROM Student").distinct.show()
              sqlContext.sql("SELECT gender, race, parentalLevelOfEducation, mathScore, readingScore FROM Student WHERE mathScore> 75 and readingScore>90").show()
              sqlContext<span>("SELECT gender, race, parentalLevelOfEducation, mathScore, readingScore").dropDuplicates().show()</span>
              println("We have finished here...!")
       spark.stop()
    }
}

Вывод для операторов SparkSQL, выполненных выше, выглядит следующим образом:

  • Распечатка данных с помощью функции println.
DF.rdd.foreach(println)

  • Печать схемы, которую мы разработали для наших данных.
println(DF.printSchema)

  • Печать нашего Dataframe с помощью команды select.
sqlContext.sql("SELECT * FROM Student").show()

  • Применение функции ГДЕ для печати данных учащихся, набравших более 75 баллов по математике.
sqlContext.sql("SELECT gender, race, parentalLevelOfEducation, mathScore FROM Student WHERE mathScore > 75").show()

  • Использование операции «Группировать по и подсчет», чтобы узнать количество студентов в каждой группе.
sqlContext.sql("SELECT race, count(race) FROM Student GROUP BY race").show()

  • Использование операции фильтрации, чтобы найти учеников, которые оказались лучшими в чтении.
sqlContext.sql("SELECT gender, race, parentalLevelOfEducation, mathScore, readingScore FROM Student").filter("readingScore>90").show()

  • Использование функции Distinct, чтобы узнать различные значения в наших данных.
sqlContext.sql("SELECT race, parentalLevelOfEducation FROM Student").distinct.show()

  • Использование функции И для сравнения нескольких объектов.
sqlContext.sql("SELECT gender, race, parentalLevelOfEducation, mathScore, readingScore FROM Student WHERE mathScore> 75 and readingScore>90").show()

  • Использование функции DropDuplicates для удаления повторяющихся записей.
sqlContext("SELECT gender, race, parentalLevelOfEducation, mathScore, readingScore").dropDuplicates().show()

Итак, на этом мы подошли к концу этой статьи Spark Java Tutorial. Я надеюсь, что мы пролили свет на ваши знания о Spark, Java и Eclipse, их функциях и различных типах операций, которые можно выполнять с их помощью.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *