map

若使用map子句,SQL语句会在每个分区内分别执行,然后将结果合并。

在where子句中使用结果与数据的行次序有关的函数如 isDuplicated, first, firstNot 等,如果涉及到多个分区,必须使用map关键字,以在每个分区内单独执行where条件。

例子

t = table((1 2 1 2 1 2 1) as id, (1 1 2 5 1 2 1) as qty)
db=database("dfs://valuedb", VALUE, 1..10)
pt = db.createPartitionedTable(t, `pt, `id)
pt.append!(t);

select *  from pt;

id

qty

1

1

1

2

1

1

1

1

2

1

2

5

2

2

select *, cumsum(qty) from pt map;

id

qty

cumsum_qty

1

1

1

1

2

3

1

1

4

1

1

5

2

1

1

2

5

6

2

2

8

select * from pt where isDuplicated([id,qty]) = false map;

id

qty

1

1

1

2

2

1

2

5

2

2