
# DESCRIBE FUNCTION
#### 功能描述
DESCRIBE FUNCTION语句用于查看函数的元数据信息，包括函数名称、实现类和用法说明。如果指定 EXTENDED 选项，还会显示扩展的使用信息和示例。
#### 语法格式
```
{ DESC | DESCRIBE } FUNCTION [ EXTENDED ] function_name
```
#### 参数说明
| 参数            | 描述                                                                        |
|:---|:---|
| EXTENDED      | 可选。显示函数的扩展信息，包括使用方法和示例。                                                   |
| function_name | 函数名称。可以是内置函数或自定义函数。可使用 database_name.function_name 限定。如果不指定数据库名，则使用当前数据库。 |
   
#### 注意事项
- 不使用 EXTENDED 时，仅显示函数名称、实现类和基本用法。
- 使用 EXTENDED 时，额外显示示例和详细使用说明。
- 如果函数不存在，会报错。
- DESC 是 DESCRIBE 的缩写形式。
 
#### 示例
- **查看内置标量函数**
  ```
  DESC FUNCTION abs; -- +-------------------------------------------------------------------+-- |function_desc                                                      |-- +-------------------------------------------------------------------+-- |Function: abs                                                      |-- |Class: org.apache.spark.sql.catalyst.expressions.Abs               |-- |Usage: abs(expr) - Returns the absolute value of the numeric value.|-- +-------------------------------------------------------------------+
  ```
  
- **查看内置标量函数（扩展信息）**
  ```
  DESC FUNCTION EXTENDED abs; -- +-------------------------------------------------------------------+-- |function_desc                                                      |-- +-------------------------------------------------------------------+-- |Function: abs                                                      |-- |Class: org.apache.spark.sql.catalyst.expressions.Abs               |-- |Usage: abs(expr) - Returns the absolute value of the numeric value.|-- |Extended Usage:                                                    |-- |    Examples:                                                      |-- |      > SELECT abs(-1);                                            |-- |       1                                                           |-- +-------------------------------------------------------------------+
  ```
  
- **查看内置聚合函数**
  ```
  DESC FUNCTION max; -- +--------------------------------------------------------------+-- |function_desc                                                 |-- +--------------------------------------------------------------+-- |Function: max                                                 |-- |Class: org.apache.spark.sql.catalyst.expressions.aggregate.Max|-- |Usage: max(expr) - Returns the maximum value of `expr`.       |-- +--------------------------------------------------------------+
  ```
  
- **查看生成器函数（扩展信息）**
  ```
  DESC FUNCTION EXTENDED explode; -- +---------------------------------------------------------------+-- |function_desc                                                  |-- +---------------------------------------------------------------+-- |Function: explode                                              |-- |Class: org.apache.spark.sql.catalyst.expressions.Explode       |-- |Usage: explode(expr) - Separates the elements of array `expr`  |-- | into multiple rows, or the elements of map `expr` into        |-- | multiple rows and columns.                                    |-- |Extended Usage:                                                |-- |    Examples:                                                  |-- |      > SELECT explode(array(10, 20));                         |-- |       10                                                      |-- |       20                                                      |-- +---------------------------------------------------------------+
  ```
  
 
