Анализ с помощью 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://users@contosolake.dfs.core.windows.net/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. В результатах ячейки выберите пункт Диаграмма, чтобы просмотреть визуализацию данных.

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