Библиотеки Python Часть 2. Практическое применение. Джейд Картер

Читать онлайн.
Название Библиотеки Python Часть 2. Практическое применение
Автор произведения Джейд Картер
Жанр
Серия
Издательство
Год выпуска 2025
isbn



Скачать книгу

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

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

      С уважением,

      Джейд картер

      Глава 1. Работа с большими данными

1.1 Распределенная обработка данных с Dask и PySpark

      Работа с большими объемами данных требует инструментов, которые позволяют эффективно распределять вычисления между несколькими процессорами или даже серверами. Python предлагает две мощные библиотеки для таких задач – Dask и PySpark. Каждая из них разработана для обработки больших данных, но они имеют свои уникальные особенности и подходы. Разберем их по отдельности, чтобы понять, как их использовать, и приведем примеры.

      Dask: инструмент для масштабирования локальных задач

      Dask – это библиотека, которая позволяет расширить вычисления на вашем компьютере, эффективно распределяя их между ядрами процессора или несколькими машинами в кластере. Она идеально подходит для тех случаев, когда объем данных превышает доступную оперативную память, но вы хотите сохранить гибкость работы с Python.

      Основные особенности Dask:

      1. Dask совместим с большинством популярных библиотек Python, таких как Pandas, NumPy и Scikit-learn.

      2. Он поддерживает ленивые вычисления: операции выполняются только при необходимости.

      3. Dask позволяет работать как с массивами данных (аналог NumPy), так и с таблицами (аналог Pandas).

      Пример использования Dask для обработки данных:

      Предположим, у нас есть большой CSV-файл с данными о продажах. Его объем превышает объем оперативной памяти, поэтому обычные инструменты, такие как Pandas, не могут загрузить файл целиком.

      ```python

      import dask.dataframe as dd

      # Загрузка большого CSV-файла с помощью Dask

      df = dd.read_csv('sales_data_large.csv')

      # Выполнение простых операций (например, фильтрация по значению)

      filtered_df = df[df['sales'] > 1000]

      # Группировка и вычисление суммарных продаж

      sales_summary = filtered_df.groupby('region')['sales'].sum()

      # Выполнение вычислений (операции "ленивые", пока мы не вызовем .compute())

      result = sales_summary.compute()

      # Вывод результатов

      print(result)

      ```

      Объяснение кода:

      1. `dd.read_csv()`: Вместо загрузки всего файла в память, Dask загружает его частями (по "чанкам").

      2. Ленивые вычисления: Все операции, такие как фильтрация и группировка, откладываются до вызова `compute()`.

      3. Параллельное выполнение: Dask автоматически распределяет работу между всеми доступными ядрами процессора.

      Когда использовать Dask:

      – Когда ваши данные не помещаются в память.

      – Когда вы уже используете библиотеки Python, такие как Pandas или NumPy, и хотите масштабировать их.

      – Когда вам нужно быстро настроить распределенные вычисления на одной или нескольких машинах.

      PySpark: инструмент для кластерного вычисления

      PySpark – это Python-интерфейс для Apache Spark, платформы, разработанной специально для обработки больших данных. Spark работает на кластерах, что позволяет масштабировать вычисления до сотен машин.

      PySpark особенно популярен в случаях, когда данные хранятся в распределенных системах, таких как HDFS или Amazon S3.

      Основные особенности PySpark:

      1. PySpark работает с данными в формате **RDD** (Resilient Distributed Dataset) или DataFrame.

      2. Он поддерживает широкий спектр операций, включая трансформации данных, машинное обучение и потоковую обработку.

      3. PySpark интегрируется с Hadoop и другими системами для хранения больших данных.

      Пример использования PySpark для обработки данных:

      Допустим, у нас есть большие данные о транзакциях, хранящиеся в формате CSV, и мы хотим вычислить среднее значение транзакций по каждому клиенту.

      ```python

      from pyspark.sql import SparkSession

      # Создаем сессию Spark

      spark = SparkSession.builder.appName("TransactionAnalysis").getOrCreate()

      # Читаем данные из CSV-файла

      df = spark.read.csv('transactions_large.csv', header=True, inferSchema=True)

      # Выполняем трансформации данных

      # 1. Фильтрация транзакций с нулевой суммой

      filtered_df = df.filter(df['amount'] > 0)

      # 2. Группировка по клиенту и вычисление среднего значения

      average_transactions = filtered_df.groupBy('customer_id').avg('amount')

      # Показ результатов

      average_transactions.show()

      # Останавливаем Spark-сессию

      spark.stop()

      ```

      Объяснение кода:

      1. Создание SparkSession: Это точка входа для работы с PySpark.

      2.