Помощник по Apache Spark в Azure Synapse Analytics (предварительная версия)

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

Встроенные советы

Может возвращать несогласованные результаты при использовании randomSplit

Несогласованные или неточные результаты могут быть возвращены при работе с результатами метода randomSplit. Используйте кэширование Apache Spark (RDD) перед использованием метода randomSplit.

Метод randomSplit() эквивалентен выполнению sample() в кадре данных несколько раз, при этом каждый sample возвращает, секционирует и сортирует кадр данных в разделах. Распределение данных между секциями и порядок сортировки важны как для randomSplit(), так и для sample(). Если при повторной выборке данных в результате изменений могут возникать дубликаты или отсутствующие значения в разбиениях и в одном sample, то при использовании одного начального значения могут быть получены разные результаты.

Эти несоответствия могут произойти не во всех запусках, но для их полного устранения необходимо кэширование кадра данных, повторное разделение столбцов или применение агрегатных функций, таких как groupBy.

Имя таблицы или представления уже используется

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

Не удалось распознать указание

Выбранный запрос содержит указание, которое не распознается. Проверьте правильность написания указания.

spark.sql("SELECT /*+ unknownHint */ * FROM t1")

Не удается найти указанные имена отношений

Не удалось найти отношения, заданные в указании. Убедитесь, что отношения написаны правильно и доступны в области указания.

spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Указание в запросе препятствует применению другого указания

Выбранный запрос содержит указание, которое препятствует применению другого указания.

spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Включите spark.advise.divisionExprConvertRule.enable, чтобы уменьшить накопление ошибок округления

Запрос содержит выражение с типом Double. Рекомендуется включить параметр конфигурации spark.advise.divisionExprConvertRule.enable, который помогает уменьшить выражения деления и уменьшить накопление ошибок округления.

"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"

Включите spark.advise.nonEqJoinConvertRule.enable для повышения производительности запросов

Запрос содержит затратные по времени операции join из-за наличия условия Or в запросе. Рекомендуется включить параметр конфигурации spark.advise.nonEqJoinConvertRule.enable, который помогает преобразовать соединение, активируемое условием Or, в SMJ или BHJ, чтобы ускорить выполнение запроса.

Оптимизация разностной таблицы с помощью сжатия небольших файлов

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

Оптимизация таблицы Delta с помощью ZOrder

Этот запрос находится в таблице Delta и содержит фильтр с высокой степенью выборки. Чтобы повысить производительность запросов, выполните команду OPTIMIZE ZORDER BY в разностной таблице. Дополнительные сведения см. в этой статье.

Действия пользователя

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

  • Info

    Снимок экрана: советы.

  • Предупреждение

    Снимок экрана: предупреждение о рекомендациях.

  • ошибки

    Снимок экрана: ошибка рекомендации.

Дальнейшие действия

Дополнительные сведения о мониторинге приложений Apache Spark см. в статье Мониторинг приложений Apache Spark с помощью Synapse Studio.

Дополнительные сведения о создании записной книжки см. в статье Использование записных книжек Synapse.