Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлена разбивка структуры для элементов определения задания Spark. Подробные сведения см. в статье о создании и обновлении определения задания Spark с помощью REST API Microsoft Fabric.
Поддерживаемые форматы
Элементы SparkJobDefinition поддерживают SparkJobDefinitionV1 и SparkJobDefinitionV2 формат.
Различия в формате
- SparkJobDefinitionV1 определяет только свойства определения задания Spark в полезных данных.
- SparkJobDefinitionV2 использует то же содержимое полезных данных, что и версия 1, и расширяет его, позволяя отправлять основные исполняемые и зависимые библиотеки в виде дополнительных частей.
Свойства в полезных данных определения задания Spark согласованы в обоих форматах. Различие между форматами заключается в методе, с помощью которого предоставляются файлы, а не в самом содержимом полезных данных.
SparkJobDefinitionV1
Части определения
Определение элемента задания Spark с SparkJobDefinitionV1 форматом состоит из одной части и создается следующим образом:
Путь — имя файла, например:
SparkJobDefinitionV1.jsonТип полезных данных — InlineBase64
Полезные данные . Пример содержимого полезных данных, декодированного из Base64
Пример содержимого полезных данных, декодированного из Base64
{
"executableFile": null,
"defaultLakehouseArtifactId": "",
"mainClass": "",
"additionalLakehouseIds": [],
"retryPolicy": null,
"commandLineArguments": "",
"additionalLibraryUris": [],
"language": "",
"environmentArtifactId": null
}
Пример определения
Ниже приведен пример определения элемента для задания Spark.
{
"format": "SparkJobDefinitionV1",
"parts": [
{
"path": "SparkJobDefinitionV1.json",
"payload": "eyJleGVjdXRhYmxlRmlsZSI6bnVsbCwiZGVmYXVsdExha2Vob3VzZUFydGlmYWN0SWQiOiIiLCJtYWluQ2xhc3MiOiIiLCJhZGRpdGlvbmFsTGFrZWhvdXNlSWRzIjpbXSwicmV0cnlPbGljYXR5IjpudWxsLCJjb21tYW5kTGluZUFyZ3VtZW50c2I6bnVsbCwiY29tbWFuZExpbmVBYnJndW1lbnRzIjpbXSwibGFuZ3VhZ2UiOiIiLCJlbm52ZW1lbnRBYnJndW1lbnRzIjpbXSwibGFuZ3VhZ2UiOiIiLCJlbm52ZW1lbnRBYnJndW1lbnRzIjpbXSwiZW52aXJvbm1lbnRBcnRpZmFjdElkIjpudWxsfQ==",
"payloadType": "InlineBase64"
},
{
"path": ".platform",
"payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
"payloadType": "InlineBase64"
}
]
}
схема SparkJobDefinitionV1.json
В следующей таблице описаны свойства, поддерживаемые в SparkJobDefinitionV1.json.
| Недвижимость | Тип | Обязательно | Description |
|---|---|---|---|
executableFile |
string | Null | нет | Путь к основному исполняемому файлу (например, main.py) |
language |
струна | нет | Язык задания Spark (например, Python, Scala). |
mainClass |
струна | нет | Полное имя основного класса для заданий на основе JVM. |
commandLineArguments |
струна | нет | Аргументы командной строки, переданные заданию. |
defaultLakehouseArtifactId |
струна | нет | Идентификатор элемента Lakehouse по умолчанию, связанный с заданием. |
additionalLakehouseIds |
массив строк | нет | Дополнительные идентификаторы элементов Lakehouse, необходимые для задания. |
additionalLibraryUris |
массив строк | нет | Список имен файлов библиотеки. |
retryPolicy |
object | Null | нет | Настройка политики повтора для задания Spark. |
environmentArtifactId |
string | Null | нет | Идентификатор элемента среды, используемый для выполнения. |
retryPolicy
Свойство retryPolicy управляет поведением повторных попыток для задания Spark.
- Тип: строка (объект в кодировке JSON)
- Обязательно: Нет
Значение должно быть строкой в кодировке JSON, представляющей политику повторных попыток.
Объект политики повтора
| Недвижимость | Тип | Обязательно | Description |
|---|---|---|---|
policyType |
струна | Да | Тип политики повтора. Единственным поддерживаемым значением является SimpleRetry. |
policyProperties |
объект | нет | Свойства, которые настраивают поведение повторных попыток. |
Свойства политики повтора (policyProperties)
| Недвижимость | Тип | Обязательно | Description |
|---|---|---|---|
retryCount |
целое число | Да | Количество повторных попыток. Должен быть ≥1 или -1. |
intervalBetweenRetriesInSeconds |
целое число | нет | Интервал между повторными попытками в секундах (0–86400). |
Пример
{
"retryPolicy": {
"policyType": "SimpleRetry",
"policyProperties": {
"retryCount": 3,
"intervalBetweenRetriesInSeconds": 300
}
}
}
SparkJobDefinitionV2
Примечание Формат
SparkJobDefinitionV2поддерживает только отправку файлов Python (.py) и R (.R)..jarОтправка файлов не поддерживается ни в том,LibsниMainв нескольких частях.
Части определения
Определение элемента задания Spark с SparkJobDefinitionV2 форматом SparkJobDefinitionV1.json состоит из части и, при необходимости, Main части файла и Libs частей файла.
Примечание. По историческим причинам имя файла содержится V1 , даже если SparkJobDefinitionV2 используется формат.
Часть SparkJobDefinitionV1.json создается следующим образом:
Путь -
SparkJobDefinitionV1.jsonТип полезных данных — InlineBase64
Полезные данные . Пример содержимого полезных данных, декодированного из Base64
Пример содержимого полезных данных, декодированного из Base64
{
"executableFile": "main.py",
"defaultLakehouseArtifactId": "",
"mainClass": "",
"additionalLakehouseIds": [],
"retryPolicy": null,
"commandLineArguments": "",
"additionalLibraryUris": ["lib1.py", "lib2.py"],
"language": "Python",
"environmentArtifactId": null
}
Часть файла является необязательной Main . Может быть не более однойMain части файла. Он должен быть предоставлен, если клиент хочет отправить основной файл определения в запросе на создание и обновление. Часть Main файла создается следующим образом:
Путь — путь к файлу, который должен начинаться с
Main/имени файла. Например:Main/main.py.Тип полезных данных — InlineBase64
Полезные данные — содержимое файла, закодированное в формате Base64.
Необязательная Libs часть файла. Может быть несколькоLibs частей файлов. Он должен быть предоставлен, если клиент хочет отправить ссылочный файл в запросе на создание и обновление. Часть Libs файла создается следующим образом:
Путь — путь к файлу, который должен начинаться с
Libs/имени файла. Например:Libs/lib1.py.Тип полезных данных — InlineBase64
Полезные данные — содержимое файла, закодированное в формате Base64.
Пример определения
Ниже приведен пример определения задания SparkJobDefinitionV2 с основным файлом определения и двумя ссылочными файлами.
{
"format": "SparkJobDefinitionV2",
"parts": [
{
"path": "SparkJobDefinitionV1.json",
"payload": "ewogICAgImV4ZWN1dGFibGVGaWxlIjogIm1haW4ucHkiLAogICAgImRlZmF1bHRMYWtlaG91c2VBcnRpZmFjdElkIjogIiIsCiAgICAibWFpbkNsYXNzIjogIiIsCiAgICAiYWRkaXRpb25hbExha2Vob3VzZUlkcyI6IFtdLAogICAgInJldHJ5UG9saWN5IjogbnVsbCwKICAgICJjb21tYW5kTGluZUFyZ3VtZW50cyI6ICIiLAogICAgImFkZGl0aW9uYWxMaWJyYXJ5VXJpcyI6IFsibGliMS5weSIsICJsaWIyLnB5Il0sCiAgICAibGFuZ3VhZ2UiOiAiUHl0aG9uIiwKICAgICJlbnZpcm9ubWVudEFydGlmYWN0SWQiOiBudWxsCn0=",
"payloadType": "InlineBase64"
},
{
"path": ".platform",
"payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
"payloadType": "InlineBase64"
},
{
"path": "Main/main.py",
"payload": "cHJpbnQoMSk=",
"payloadType": "InlineBase64"
},
{
"path": "Libs/lib1.py",
"payload": "cHJpbnQoMik=",
"payloadType": "InlineBase64"
}
{
"path": "Libs/lib2.py",
"payload": "cHJpbnQoMyk=",
"payloadType": "InlineBase64"
}
]
}