aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-12-13 15:14:50 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-12-13 16:07:36 +0300
commit5cbdc6f2bc811da3e6104da774a30b25a54a8708 (patch)
tree68f3ddb0d928332e5ea73853f40f4670f4babb65 /yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls
parent1402a032649d20ffb80a541f706afcd31cd897fa (diff)
downloadydb-5cbdc6f2bc811da3e6104da774a30b25a54a8708.tar.gz
Intermediate changes
commit_hash:27af5f8a0a7836d78ffdc205213f07f79dd9f7ad
Diffstat (limited to 'yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls')
-rw-r--r--yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls29
1 files changed, 29 insertions, 0 deletions
diff --git a/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls b/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls
new file mode 100644
index 0000000000..fd5d2eb0e7
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/MapCombineMap.yqls
@@ -0,0 +1,29 @@
+(
+ (let x (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"Input"))) '('"key" '"subkey" '"value") '()))
+ (let world (Left! x))
+ (let table0 (Right! x))
+
+ (let map (FlatMap table0 (lambda '(row) (block '(
+ (let key (MatchType (Member row '"key") 'Optional (lambda '(item) (Coalesce (Map item (lambda '(val) (IfType val (DataType 'String) (lambda '(item) (FromString item '"Int64")) (lambda '(item) (Just (Convert item '"Int64")))))) (Nothing (OptionalType (DataType '"Int64"))))) (lambda '(item) (IfType item (DataType 'String) (lambda '(item) (FromString item '"Int64")) (lambda '(item) (Convert item '"Int64"))))))
+ (let res (Struct))
+ (let res (AddMember res '"Avg1" '(key (Convert (Exists key) 'Uint64))))
+ (let res (AsList res))
+ (return res)
+ )))))
+ (let combine (CombineByKey map (lambda '(row) (Just row)) (lambda '(row) (Uint64 '0)) (lambda '(key row) row) (lambda '(key row state) state) (lambda '(key state) (Just state))))
+ (let result (FlatMap combine (lambda '(row) (block '(
+ (let p0 (Nth (Member row 'Avg1) '0))
+ (let p1 (Nth (Member row 'Avg1) '1))
+ (let res (Struct))
+ (let res (AddMember res '"keyAvg" (
+ FlatMap p0 (lambda '(value) (Just (Coalesce (Div (Convert value 'Double) (Convert p1 'Double)) (Double '0))))
+ )))
+ (let res (AsList res))
+ (return res)
+ )))))
+ (let result_sink (DataSink 'result))
+ (let world (Write! world result_sink (Key) result '('('type) '('autoref))))
+ (let plato_sink (DataSink '"yt" '"plato"))
+ (let world (Commit! world plato_sink))
+ (return (Commit! world result_sink))
+)