Interactive session
Common parameters and headers
The following information is common to all tasks related to clusters that you might do:
Replace {cluster-endpoint} with the url of your cluster’s management endpoint. (for example, myendpoint.azurehdinsight.net)
Replace {session-id} with the session id returned on session startup.
Set the Content-Type header to application/json.
Authenticate with the endpoint using HTTP basic authentication.
Create a new interactive session
Start a new interactive session.
Request
See Common parameters and headers for headers and parameters that are used by clusters.
Method | Request URI |
---|---|
POST | https://{cluster-endpoint}/livy/sessions |
Following shows an example request to create a new interactive session
{
"kind" : "spark",
"jars" : ["wasb://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/helper.jar"],
"files" : ["wasb://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/config.xml"],
"driverMemory" : "1G",
"driverCores" : 2,
"executorMemory" : "1G",
"executorCores" : 10,
"numExecutors" : 10
}
Element name | Required | Type | Description |
---|---|---|---|
Kind | Yes | String | The session kind. Possible values: [“spark”, “pyspark”, “sparkr”] |
proxyUser | No | String | The user to impersonate that will execute the job |
jars | No | Array of String | Files to be placed on the java classpath |
pyFiles | No | Array of String | Files to be placed on the PYTHONPATH |
files | No | Array of String | Files to be placed in executor working directory |
driverMemory | No | String | Memory for driver (1000M, 2G) |
driverCores | No | Integer | Number of cores used by driver |
executorMemory | No | String | Memory for executor (1000M, 2G) |
executorCores | No | Integer | Number of cores used by executor |
numExecutors | No | Integer | Number of executors |
archives | No | Array of String | Archives to be uncompressed (YARN mode only) |
Response
The operation will return 200 (OK) if the request is completed successfully
Status code: 200 OK
Response body:
{
"id" : 1,
"state" : "starting",
"kind" : "spark",
“log" : ["logline"]
}
Element name | Required | Type | Description |
---|---|---|---|
id | Yes | Integer | The interactive session id |
Kind | Yes | String | The session kind. Possible values: [“spark”, “pyspark”, “sparkr”] |
log | Yes | Array of strings | Array of log lines for this batch job. |
State | Yes | String | The session state. Possible value: [“starting”, “idle”, “error”, “running”, “success”] |
Get the state of an interactive session
Request
See Common parameters and headers for headers and parameters that are used by clusters.
Method | Request URI |
---|---|
GET | https://{cluster-endpoint}/livy/sessions/{session-id} |
Response
If validation is complete and the request is accepted, the operation will return 200 (OK).
Status code: 200 OK
Response body:
{
"id" : 1,
"state" : "starting",
"kind" : "spark",
“log" : ["logline"]
}
Element name | Required | Type | Description |
---|---|---|---|
id | Yes | Integer | The batch session id |
Kind | Yes | String | The session kind. Possible values: [“spark”, “pyspark”, “sparkr”] |
log | Yes | Array of strings | Array of log lines for this batch job. |
state | Yes | String | The session state. Possible value: [“starting”, “idle”, “error”] |
Retrieve statement results of an interactive session
Request
See Common parameters and headers for headers and parameters that are used by clusters.
Method | Request URI |
---|---|
GET | https://{cluster-endpoint}/livy/sessions/{session-id}/statements |
Response
If validation is complete and the request is accepted, the operation will return 200 (OK).
Status code: 200 OK
Response body:
{
"total_statements" : 1,
"statements" : [{
"id" : 0,
"state" : "available",
"output" : {
"status" : "ok",
"execution_count" : 1,
"data" : {
"text/plain" : "res1: Int = 2"
}
}
}
]
}
Element name | Required | Type | Description |
---|---|---|---|
Total_statements | Yes | Integer | Total number of statements |
Statements | Yes | Array of complex Type (Statement) | Output of statement |
Statement
Element name | Required | Type | Description |
---|---|---|---|
Id | Yes | Integer | The statement id |
State | Yes | String | The statement state. |
Output | Yes | Complex type (Output) | The output of the statement. |
Output
Element name | Required | Type | Description |
---|---|---|---|
Status | Yes | String | The statement status |
Execution_count | Yes | Integer | The number of executions |
data | Yes | Complex type (Text) | The text output of the statement. |
Text
Element name | Required | Type | Description |
---|---|---|---|
Text/plain | Yes | String | The plain text of the output |
Return all active interactive sessions
Request
See Common parameters and headers for headers and parameters that are used by clusters.
Method | Request URI |
---|---|
GET | https://{cluster-endpoint}/livy/sessions |
Response
If validation is complete and the request is accepted, the operation will return 200 (OK).
Status code: 200 OK
Response body:
{
"from" : 0,
"total" : 2,
"sessions" : [{
"id" : 1,
"state" : "starting",
"kind" : "spark",
"log" : ["logline"]
}, {
"id" : 0,
"state" : "idle",
"kind" : "spark",
"log" : ["logline"]
}
]
}
Element name | Required | Type | Description |
---|---|---|---|
from | Yes | String | Offset |
total | Yes | String | Number of sessions to return |
sessions | Yes | Array of Complex Type (Session) | A list of active sessions |
Session
Element name | Required | Type | Description |
---|---|---|---|
id | Yes | Integer | The interactive session id |
Kind | Yes | String | The session kind. Possible values: [“spark”, “pyspark”, “sparkr”] |
log | Yes | Array of strings | Array of log lines for this session. |
state | Yes | String | The session state. Possible value: [“starting”, “idle”, “error”, “running”, “success”] |
Submit statement(s) to an interactive session
Request
See Common parameters and headers for headers and parameters that are used by clusters.
Method | Request URI |
---|---|
POST | https://{cluster-endpoint}/livy/sessions/{session-id}/statements |
Following shows an example request to create a new interactive session.
{
"code" : "1 + 1"
}
Element name | Required | Type | Description |
---|---|---|---|
Code | Yes | String | The code to execute |
Response
If validation is complete and the request is accepted, the operation will return 200 (OK).
Status code: 200 OK
Response body:
{
"id" : 1,
"state" : "running",
"output" : null
}
Element name | Required | Type | Description |
---|---|---|---|
id | Yes | Integer | The batch session id |
Output | Yes | String | Output of statement |
state | Yes | String | The session state. Possible value: [“starting”, “idle”, “error”] |
Terminate an interactive session
Request
See Common parameters and headers for headers and parameters that are used by clusters.
Method | Request URI |
---|---|
DELETE | https://{cluster-endpoint}/livy/sessions/{session-id} |
Response
If validation is complete and the request is accepted, the operation will return 200 (OK).
Status code: 200 OK
Response body:
{
"msg" : "deleted"
}
Element name | Required | Type | Description |
---|---|---|---|
Message | Yes | String | The message of the delete. |