Поделиться через


Быстрый старт: Анализ с помощью Apache Spark

В этом учебнике описываются основные шаги по загрузке и анализу данных с помощью Apache Spark для Azure Synapse.

Необходимые условия

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

Создание бессерверного пула Apache Spark

  1. В Synapse Studio на панели слева выберите Управление>Пулы Apache Spark.
  2. Выберите Создать.
  3. В поле Имя пула Apache Spark введите Spark1.
  4. В поле Размер узла введите Небольшой.
  5. Установите минимальное и максимальное значение 3 в поле Число узлов.
  6. Выберите Просмотреть и создать>Создать. Ваш пул Apache Spark будет готов через несколько секунд.

Общие сведения о бессерверных пулах Apache Spark

Бессерверный пул Spark позволяет определить для пользователя способ работы со Spark. Когда вы подключаетесь к пулу, в случае необходимости создаётся сеанс Spark. Пул управляет тем, сколько ресурсов Spark будет использоваться в этом сеансе и как долго будет длиться сеанс перед автоматической приостановкой. Вы оплачиваете ресурсы Spark, используемые во время этого сеанса, а не сам пул. Таким образом пул Spark позволяет использовать Apache Spark без управления кластерами. Это похоже на то, как работает бессерверный пул SQL.

Анализ данных такси Нью-Йорка с использованием пула Spark

  1. В Synapse Studio перейдите в центр Разработка.

  2. Создайте новую записную книжку.

  3. Создайте новую ячейку кода и вставьте в нее следующий код:

    %%pyspark
    df = spark.read.load('abfss://[email protected]/NYCTripSmall.parquet', format='parquet')
    display(df.limit(10))
    
  4. Измените URI загрузки, чтобы он ссылался на пример файла в вашей учетной записи хранения в соответствии со схемой универсального кода ресурса (URI) abfss.

  5. В записной книжке в меню Присоединить к выберите созданный ранее бессерверный пул Spark Spark1.

  6. В ячейке выберите элемент Выполнить. При необходимости Synapse запустит новый сеанс Spark для выполнения этой ячейки. Если требуется новый сеанс Spark, изначально потребуется около 2–5 минут. После создания сессии выполнение ячейки займет около 2 секунд.

  7. Если вы просто хотите просмотреть схему кадра данных, выполните ячейку со следующим кодом:

    %%pyspark
    df.printSchema()
    

Загрузка данных нью-йоркского такси в базу данных Spark "nyctaxi"

Данные можно получить через кадр данных с именем df. Загрузите их в базу данных Spark с именем nyctaxi.

  1. Добавьте в записную книжку новую ячейку для кода и введите следующий код:

    %%pyspark
    spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi")
    df.write.mode("overwrite").saveAsTable("nyctaxi.trip")
    

Анализ данных нью-йоркского такси с помощью Spark и записных книжек

  1. Создайте новую ячейку кода и введите следующий код.

    %%pyspark
    df = spark.sql("SELECT * FROM nyctaxi.trip") 
    display(df)
    
  2. Запустите ячейку, чтобы показать данные о такси Нью-Йорка, которые мы загрузили в базу данных Spark nyctaxi.

  3. Создайте новую ячейку кода и введите следующий код. Мы проанализируем эти данные и сохраните результаты в таблице под названием nyctaxi.passengercountstats.

    %%pyspark
    df = spark.sql("""
       SELECT passenger_count,
           SUM(trip_distance) as SumTripDistance,
           AVG(trip_distance) as AvgTripDistance
       FROM nyctaxi.trip
       WHERE trip_distance > 0 AND passenger_count > 0
       GROUP BY passenger_count
       ORDER BY passenger_count
    """) 
    display(df)
    df.write.saveAsTable("nyctaxi.passengercountstats")
    
  4. В результатах ячейки выберите пункт Диаграмма, чтобы просмотреть визуализацию данных.

Следующий шаг