aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/s-expressions/suites/Builtins/CombineByKey.yql
blob: 5fa1b5c03738d0f3e10444de9c298c08e4dd6d57 (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
(
#comment
(let mr_source (DataSource 'yt 'plato))
(let x (Read! world mr_source (Key '('table (String 'Input))) '('key 'subkey 'value) '()))
(let world (Left! x))
(let table1 (Right! x))
(let table1map (FlatMap table1 (lambda '(item) (block '(
   (let value (Member item 'value))
   (let newValue (AsList value))
   (let newValue (Prepend (String 'abc) newValue))
   (let newValue (Append newValue (String 'q)))
   (let preMap (lambda '(item) (Just item)))
   (let keyExtractor (lambda '(item) item))
   (let init (lambda '(key item) item))
   (let update (lambda '(key item state) (Concat state item)))
   (let finish (lambda '(key state) (AsList '(key state))))
   (let combined (CombineByKey newValue preMap keyExtractor init update finish))
   (let ret (Map combined (lambda '(item2) (block '(
      (let s (Struct))
      (let s (AddMember s 'key (Member item 'key)))
      (let s (AddMember s 'subkey (String  '.)))
      (let s (AddMember s 'value (Concat (Concat (Nth item2 '0) (String '" => ")) (ToString (Nth item2 '1)))))
      (return s))))))
   (return ret)
)))))
(let mr_sink (DataSink 'yt (quote plato)))
(let world (Write! world mr_sink (Key '('table (String 'Output))) table1map '('('mode 'append))))
(let world (Commit! world mr_sink))
(return world)
)