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) + " нс");
