Рубрики
Без рубрики

Учебник Apache Spark по Java: Самое простое руководство для начала работы

Эта статья представляет собой полное руководство по Apache Spark Java, в котором вы узнаете, как написать простой… Помечено машинным обучением, spark, java, bigdata.

Эта статья представляет собой полное руководство по Apache Spark Java, в котором вы узнаете, как написать простое приложение Spark. Для следования этому руководству не требуется никаких предварительных знаний об Apache Spark. Наше приложение Spark определит самые популярные слова в названиях видео на Youtube в США.

Во-первых, я представил Apache Spark, его историю, что это такое и как он работает. Во-первых, я представил Apache Spark, его историю, что это такое и как он работает.

История Apache Spark

История Apache Spark появилась в Калифорнийском университете в Беркли, где группа исследователей признает отсутствие интерактивности заданий MapReduce. В зависимости от размера наборов данных выполнение большого задания MapReduce может занять несколько часов или даже дней. Кроме того, вся экосистема Hadoop и MapReduce была сложной и сложной для изучения.

Платформа Apache Hadoop была отличным решением для распределенных систем, внедряющих парадигму параллелизма программирования в распределенных наборах данных. Рабочие узлы кластера будут выполнять вычисления и агрегировать результаты, получая результат. Однако у Hadoop есть несколько недостатков: система требует сложной настройки и не совсем интерактивна. К счастью, Apache Spark привнес в картину простоту и скорость.

Что такое Apache Spark?

Apache Spark – это вычислительный движок, который может планировать и распределять вычисления приложения, состоящие из множества задач. Это означает, что ваши вычислительные задачи или приложение не будут выполняться последовательно на одной машине. Вместо этого Apache Spark разделит вычисления на отдельные более мелкие задачи и выполнит их на разных серверах внутри кластера. Следовательно, максимизация мощности параллелизма.

Еще одним важным улучшением по сравнению с Hadoop является скорость. Использование хранилища в памяти для промежуточных результатов вычислений делает Apache Spark намного быстрее, чем Hadoop MapReduce.

Архитектура с примерами

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

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

Настройка программы Spark Java

Напишите Java-программу Apache Spark

И, наконец, мы подходим к последнему шагу учебника Apache Spark Java, написанию кода программы Apache Spark Java. Пока мы создаем проект и загружаем набор данных, так что вы готовы написать программу spark, которая анализирует эти данные. В частности, мы выясним наиболее часто используемые слова в популярных заголовках YouTube.

Более подробные объяснения приведенного ниже кода

public class YoutubeTitleWordCount {
    private static final String COMMA_DELIMITER = ",";
    public static void main(String[] args) throws IOException {

        Logger.getLogger("org").setLevel(Level.ERROR);
        // CREATE SPARK CONTEXT
        SparkConf conf = new SparkConf().setAppName("wordCounts").setMaster("local[3]");
        JavaSparkContext sparkContext = new JavaSparkContext(conf);

        // LOAD DATASETS
        JavaRDD videos = sparkContext.textFile("data/youtube/USvideos.csv");

        // TRANSFORMATIONS
        JavaRDD titles =videos
                .map(YoutubeTitleWordCount::extractTitle)
                .filter(StringUtils::isNotBlank);

        JavaRDD words = titles.flatMap( title -> Arrays.asList(title
                .toLowerCase()
                .trim()
                .replaceAll("\\p{Punct}","")
                .split(" ")).iterator());

        // COUNTING
        Map wordCounts = words.countByValue();
        List sorted = wordCounts.entrySet().stream()
                .sorted(Map.Entry.comparingByValue()).collect(Collectors.toList());

        // DISPLAY
        for (Map.Entry entry : sorted) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }

    }


    public static String extractTitle(String videoLine){
        try {
            return videoLine.split(COMMA_DELIMITER)[2];
        }catch (ArrayIndexOutOfBoundsException e){
            return "";
        }
    }
}

Я надеюсь, вам понравится эта статья, и большое вам спасибо за чтение и поддержку этого блога!

Оригинал: “https://dev.to/hellocodeclub/apache-spark-java-tutorial-simplest-guide-to-get-started-7hm”