aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/s-expressions/suites/View/DsvCountPartitionBy.yql
blob: f186cb7101f2e91399539bf96032b2f44d556e7e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
(
(let x (Read! world (DataSource 'yt 'plato) (Key '('table (String 'Input))) '('dict 'key) '()))
(let world (Left! x))
(let Input (Right! x))
(let select1_input12 Input)
(let output13 (block '(
  (let select1_output select1_input12)
  (let select1_output (Filter select1_output (lambda '(row) (block '(
    (let res (Coalesce (!= (Not (Exists (Lookup (Member row 'dict) (String '"b")))) (Bool 'true)) (Bool 'false)))
    (return res)
)
))))
  (let select1_output (PartitionByKey select1_output (lambda '(row) (block '(
    (let res (Member row 'key))
    (return res)
)
)) (Void) (Void) (lambda '(stream) (FlatMap stream (lambda '(pair) (block '(
    (let key (Nth pair '0))
    (let group (ForwardList (Nth pair '1)))
    (let aggr (Fold1 group (lambda '(row) (block '(
      (let res (Struct))
      (let res (AddMember res 'key (Member row 'key)))
      (let res (AddMember res 'Count7 (Convert (Exists (Lookup (Member row 'dict) (String '"a"))) 'Uint64)))
      (return res)
)
)) (lambda '(row state) (block '(
      (let res (Struct))
      (let res (AddMember res 'key (Member row 'key)))
      (let res (AddMember res 'Count7 (OptionalReduce (Member state 'Count7) (Convert (Exists (Lookup (Member row 'dict) (String '"a"))) 'Uint64) (lambda '(a b) (+ a b)))))
      (return res)
)
))))
    (let res (FlatMap aggr (lambda '(row) (block '(
      (let res (Struct))
      (let res (AddMember res 'key (Member row 'key)))
      (let res (AddMember res 'a (Member row 'Count7)))
      (let res (AsList res))
      (return res)
)
))))
    (return res)
)))
))))
  (return select1_output)
)
))
(let result_sink (DataSink 'result))
(let world (Write! world result_sink (Key) output13 '('('type) '('autoref) '('columns '('key 'a)))))
(let plato_sink (DataSink 'yt 'plato))
(let world (Commit! world plato_sink))
(let world (Commit! world result_sink))
(return world)
)