aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-11-20 17:37:57 +0000
committerGitHub <noreply@github.com>2024-11-20 17:37:57 +0000
commitf76323e9b295c15751e51e3443aa47a36bee8023 (patch)
tree4113c8cad473a33e0f746966e0cf087252fa1d7a /yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql
parent753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff)
parenta7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff)
downloadydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql')
-rw-r--r--yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql30
1 files changed, 30 insertions, 0 deletions
diff --git a/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql b/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql
new file mode 100644
index 0000000000..c9f35934d8
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/ManyYamrOperations/CombineThenSort.yql
@@ -0,0 +1,30 @@
+(
+ (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 sortAfterCombine (Sort result (Bool 'false) (lambda '(x) (Member x 'keyAvg) )))
+ (let result_sink (DataSink 'result))
+ (let world (Write! world result_sink (Key) sortAfterCombine '('('type) '('autoref))))
+ (let plato_sink (DataSink '"yt" '"plato"))
+ (let world (Commit! world plato_sink))
+ (return (Commit! world result_sink))
+)