
# 预览SparkSql作业查询结果 - PreviewSparkSqlResult
#### 功能介绍
预览SparkSql作业的查询结果，此接口为同步接口。仅适用于执行成功的DQL类型作业，可查看作业返回的数据内容，调用成功后直接返回查询结果数据。可通过[查看SparkSql作业详情](https://support.huaweicloud.com/api-aidatalake/ShowSparkSql.html)接口查看作业详细信息。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-aidatalake/aidatalake_02_0003.html)。
#### URI
POST /v2/workspaces/{workspace_id}/spark-sqls/{statement_id}/preview
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| workspace_id | 是    | String | **参数解释**：工作空间ID，用于资源隔离。可在控制台的工作空间页面查看。 **约束限制**：不涉及。 **取值范围**：只能由英文字母、数字及中划线组成，且长度为32\~36个字符。 **默认取值**：不涉及。         |
| statement_id | 是    | String | **参数解释**：SparkSql作业ID，用于唯一标识一次SparkSql作业执行。 **约束限制**：不涉及。 **取值范围**：只能由英文字母、数字、下划线和中划线组成，且长度为1\~64个字符。 **默认取值**：不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                               |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释**：用户Token。 **约束限制**：不涉及。 **取值范围**：长度不超过65534个字符。 **默认取值**：不涉及。 |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数            | 参数类型                                                                                       | 描述                                                                                                                                  |
|:---|:---|:---|
| result_format | String                                                                                     | **参数解释**：查询类SQL结果格式，用于指定结果的存储格式。 **取值范围**：csv，arrow。                                       |
| result_path   | String                                                                                     | **参数解释**：查询类SQL结果的OBS路径，用于存储SQL查询的结果数据。 **取值范围**：采用OBS路径格式，例如：obs://bucket/path/to/result。 |
| schema        | Array of [SparkSqlSchemaItem] objects | **参数解释**：结果数据的列结构定义，包含列名和列类型信息。数组中的每个元素为SparkSqlSchemaItem对象。                                                                       |
| rows          | Array\<Array\<String\>\>                                                                   | **参数解释**：作业结果集，包含查询返回的实际数据行。每行为一个数组，对应schema中定义的列顺序。                                                                                |
   
 表4SparkSqlSchemaItem 
| 参数          | 参数类型   | 描述                                                                                                      |
|:---|:---|:---|
| column_name | String | **参数解释**：列名，用于标识结果数据中的列名称。 **取值范围**：长度为1\~128个字符，例如：col1。      |
| column_type | String | **参数解释**：列类型，用于标识结果数据中的列数据类型。 **取值范围**：支持的数据类型，例如：STRING、INT等。 |
   
**状态码：400**
表5响应Body参数 
| 参数           | 参数类型   | 描述                                                                                        |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为0\~64个字符。  |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为0\~512个字符。 |
| solution_msg | String | **参数解释**：解决方案描述。 **取值范围**：长度为0\~4096个字符。         |
   
**状态码：401**
表6响应Body参数 
| 参数           | 参数类型   | 描述                                                                                        |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为0\~64个字符。  |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为0\~512个字符。 |
| solution_msg | String | **参数解释**：解决方案描述。 **取值范围**：长度为0\~4096个字符。         |
   
**状态码：403**
表7响应Body参数 
| 参数           | 参数类型   | 描述                                                                                        |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码，用于标识具体的错误类型。 **取值范围**：长度为0\~64个字符。  |
| error_msg    | String | **参数解释**：错误描述信息，用于说明错误原因。 **取值范围**：长度为0\~512个字符。 |
| solution_msg | String | **参数解释**：解决方案描述。 **取值范围**：长度为0\~4096个字符。         |
   
**状态码：500**
表8响应Body参数 
| 参数 | 参数类型   | 描述    |
|:---|:---|:---|
| -  | String | 错误信息。 |
   
#### 请求示例
预览已成功执行的SparkSql作业返回的数据内容，用于验证查询结果、数据质量检查和结果展示。
```
POST /v2/workspaces/{workspace_id}/spark-sqls/{statement_id}/preview
```
#### 响应示例
**状态码：200**
预览SparkSql作业查询结果成功。
```
{
  "result_format" : "csv",
  "result_path" : "obs://bucket/path/to/result",
  "schema" : [ {
    "column_name" : "id",
    "column_type" : "int"
  }, {
    "column_name" : "name",
    "column_type" : "string"
  } ],
  "rows" : [ [ "1", "test" ], [ "2", "demo" ] ]
}
```
**状态码：400**
请求参数错误。
```
{
  "error_code" : "AIDataLake.01011001",
  "error_msg" : "Invalid parameter statement",
  "solution_msg" : "Please check the input parameters according to the documentation(statement for spark sql)."
}
```
**状态码：401**
认证失败。
```
{
  "error_code" : "AIDataLake.01011003",
  "error_msg" : "auth token not exists in header",
  "solution_msg" : "Please check if auth token is included in the request header."
}
```
**状态码：403**
权限不足。
```
{
  "error_code" : "AIDataLake.01011005",
  "error_msg" : "current account has no permission",
  "solution_msg" : "Please connect administrators to add permission."
}
```
#### 状态码
| 状态码 | 描述                  |
|:---|:---|
| 200 | 预览SparkSql作业查询结果成功。 |
| 400 | 请求参数错误。             |
| 401 | 认证失败。               |
| 403 | 权限不足。               |
| 500 | 服务内部错误。             |
   
