Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/table/ Documentation version: v5.3.2 # 表格函数 本文介绍与表格操作相关的函数。 ## table_split() 将一个表格拆分为多个子表格,并返回包含这些子表格的列表。该函数适用于大数据集的并行处理或批量操作。 NULL 行为:默认 ### 函数签名 ```` table_split(t: TABLE) -> LIST ```` 或 ```` table_split(t: TABLE, size: UINT64) -> LIST ```` - `t`:待拆分表格的变量。 - `size`:计算结果为每个子表格最大行数(最后一个子表格的行数可能较少)的值表达式。如果未指定,系统将根据内存分布自动确定拆分边界。`size`必须为正整数。 ### 示例 #### 拆分表格并统计总行数 ```` ''' TABLE result_table TYPED TABLE {i INT, j INT} FOR i IN range(1, 100) FOR j IN range(1, 100) EXPORT i, j INTO result_table FOR t IN table_split(result_table) RETURN sum(size(t)) ''' ```` 返回: ```` +--------------+ | sum(size(t)) | +--------------+ | 10000 | +--------------+ ```` #### 按指定大小拆分表格 ```` ''' TABLE result_table TYPED TABLE {i INT, j INT} FOR i IN range(1, 5) FOR j IN range(1, 5) EXPORT i, j INTO result_table FOR t IN table_split(result_table, cast(10 as UINT)) RETURN size(t) ''' ```` 返回: ```` +---------+ | size(t) | +---------+ | 10 | | 10 | | 5 | +---------+ ```` 该表格共有 25 行(5 * 5),被拆分为三个子表格:前两个各 10 行,最后一个 5 行。 #### 遍历子表格中的行 ```` ''' TABLE result_table TYPED TABLE {i INT, j INT} FOR i IN range(1, 3) FOR j IN range(1, 3) EXPORT i, j INTO result_table FOR t IN table_split(result_table) FOR r IN t RETURN r.i as i, r.j as j ''' ```` 返回: ```` +---+---+ | i | j | +---+---+ | 1 | 1 | | 1 | 2 | | 1 | 3 | | 2 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 1 | | 3 | 2 | | 3 | 3 | +---+---+ ````