Java for BigData

Материал из Поле цифровой дидактики
Описание Как использовать Java для обработки больших данных? Перечень рецептов
Область знаний Информатика, Интернет вещей, Большие данные
Область использования (ISTE) Computational Thinker
Возрастная категория 14


Поясняющее видео
Близкие рецепту понятия
Среды и средства для приготовления рецепта: Java


Перечень рецептов

Потоковое чтение больших файлов (JDBC ResultSet)

Обрабатывает миллионы записей из БД без переполнения памяти (OutOfMemoryError)..

// public void readLargeDataset() {
    String url = "jdbc:postgresql://localhost:5432/bigdata";
    try (Connection conn = DriverManager.getConnection(url, "user", "pass")) {
        conn.setAutoCommit(false);
        Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        stmt.setFetchSize(1000);
        ResultSet rs = stmt.executeQuery("SELECT * FROM large_table");
        while (rs.next()) {
            processRow(rs);
        }
    } catch (SQLException e) { e.printStackTrace(); }
}

Параллельная обработка с Java Stream API

Быстро фильтрует и агрегирует большие наборы данных, задействуя все ядра процессора

// List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < 10_000_000; i++) numbers.add(i);

long start = System.nanoTime();
long sum = numbers.parallelStream()   // параллельный поток
        .mapToLong(i -> (long) i * i)   // возводим в квадрат
        .sum();
System.out.println("Сумма квадратов: " + sum + ", время: " + (System.nanoTime() - start) + " нс");