diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-11-20 11:14:58 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-11-20 11:14:58 +0000 |
commit | 31773f157bf8164364649b5f470f52dece0a4317 (patch) | |
tree | 33d0f7eef45303ab68cf08ab381ce5e5e36c5240 /yql/essentials/tests/s-expressions/suites/SingleYamrOperation | |
parent | 2c7938962d8689e175574fc1e817c05049f27905 (diff) | |
parent | eff600952d5dfe17942f38f510a8ac2b203bb3a5 (diff) | |
download | ydb-31773f157bf8164364649b5f470f52dece0a4317.tar.gz |
Merge branch 'rightlib' into mergelibs-241120-1113
Diffstat (limited to 'yql/essentials/tests/s-expressions/suites/SingleYamrOperation')
88 files changed, 1353 insertions, 0 deletions
diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKey.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKey.cfg new file mode 100644 index 0000000000..7e61f75847 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKey.cfg @@ -0,0 +1,2 @@ +in Input SomeKeys.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKey.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKey.yql new file mode 100644 index 0000000000..2e63d28e6a --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKey.yql @@ -0,0 +1,24 @@ +( +#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 preMap (lambda '(item) (Just item))) +(let keyExtractor (lambda '(item) (Member item 'key))) +(let init (lambda '(key item) (FromString (Member item 'subkey) 'Uint32))) +(let update (lambda '(key item state) (+ state (FromString (Member item 'subkey) 'Uint32)))) +(let finish (lambda '(key state) (block '( + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (Coalesce (Map state (lambda '(x) (ToString x))) (String '"")))) + (return (Just s)) +)))) +(let table2 (CombineByKey table1 preMap keyExtractor init update finish)) +(let mr_sink (DataSink 'yt 'plato)) +(let result (Sort table2 (Bool 'true) (lambda '(x) (Member x 'key)))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) result '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKeyStream.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKeyStream.cfg new file mode 100644 index 0000000000..7e61f75847 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKeyStream.cfg @@ -0,0 +1,2 @@ +in Input SomeKeys.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKeyStream.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKeyStream.yql new file mode 100644 index 0000000000..4957a8671d --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/CombineByKeyStream.yql @@ -0,0 +1,24 @@ +( +#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 preMap (lambda '(item) (Iterator (AsList item)))) +(let keyExtractor (lambda '(item) (Member item 'key))) +(let init (lambda '(key item) (FromString (Member item 'subkey) 'Uint32))) +(let update (lambda '(key item state) (+ state (FromString (Member item 'subkey) 'Uint32)))) +(let finish (lambda '(key state) (block '( + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (Coalesce (Map state (lambda '(x) (ToString x))) (String '"")))) + (return (Iterator (AsList s))) +)))) +(let table2 (CombineByKey table1 preMap keyExtractor init update finish)) +(let mr_sink (DataSink 'yt 'plato)) +(let result (Sort table2 (Bool 'true) (lambda '(x) (Member x 'key)))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) result '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Drop.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Drop.yql new file mode 100644 index 0000000000..72c7873e91 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Drop.yql @@ -0,0 +1,19 @@ +( +(let mr_sink (DataSink 'yt 'plato)) +(let data (AsList (AsStruct '('key (String 'abc))))) + +(let world (Write! world mr_sink + (Key '('table (String 'Output))) + data '('('mode 'renew)) +)) + +(let world (Commit! world mr_sink)) + +(let world (Write! world mr_sink + (Key '('table (String 'Output))) + (Void) '('('mode 'drop)) +)) + +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EmptyCopy.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EmptyCopy.cfg new file mode 100644 index 0000000000..e98936751d --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EmptyCopy.cfg @@ -0,0 +1,2 @@ +in InputEmpty input_empty.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EmptyCopy.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EmptyCopy.yql new file mode 100644 index 0000000000..fbe31a1f8f --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EmptyCopy.yql @@ -0,0 +1,11 @@ +( +#comment +(let mr_source (DataSource 'yt 'plato)) +(let x (Read! world mr_source (Key '('table (String 'InputEmpty))) '('key 'subkey 'value) '())) +(let world (Left! x)) +(let table1 (Right! x)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EnumerateInsideReduce.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EnumerateInsideReduce.cfg new file mode 100644 index 0000000000..7e61f75847 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EnumerateInsideReduce.cfg @@ -0,0 +1,2 @@ +in Input SomeKeys.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EnumerateInsideReduce.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EnumerateInsideReduce.yql new file mode 100644 index 0000000000..c28ef4d035 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/EnumerateInsideReduce.yql @@ -0,0 +1,26 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (ForwardList (Nth pair '1))) + (let list (Skip (Take (Enumerate list) (Uint64 '2)) (Uint64 '1))) + (let r (FlatMap list (lambda '(x) (block '( + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (Concat (ToString (Nth x '0)) (ToString (Member (Nth x '1) 'value))))) + (return (AsList s)) + ))))) + (return r) +)))))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void)listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Fill.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Fill.yql new file mode 100644 index 0000000000..e48c1f7a2f --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Fill.yql @@ -0,0 +1,11 @@ +( +#comment +(let data (AsList +(AsStruct '('key (String 'key1)) '('subkey (String '"")) '('value (String 'value1))) +(AsStruct '('key (String 'key2)) '('subkey (String '"")) '('value (String 'value2))) +)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) data '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FillWithCount.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FillWithCount.yql new file mode 100644 index 0000000000..20f0cd1ac2 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FillWithCount.yql @@ -0,0 +1,15 @@ +( +#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 data (AsList +(AsStruct '('key (String 'key1)) '('subkey (String '"")) '('value (String 'value1))) +(AsStruct '('key (String 'key2)) '('subkey (String '"")) '('value (ToString (Length table1)))) +)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) data '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FilterThenCombineByKey.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FilterThenCombineByKey.cfg new file mode 100644 index 0000000000..7e61f75847 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FilterThenCombineByKey.cfg @@ -0,0 +1,2 @@ +in Input SomeKeys.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FilterThenCombineByKey.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FilterThenCombineByKey.yql new file mode 100644 index 0000000000..a5be6f207c --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/FilterThenCombineByKey.yql @@ -0,0 +1,25 @@ +( +#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 table1 (Filter table1 (lambda '(x) (< (Member x 'key) (String '500))))) +(let preMap (lambda '(item) (Just item))) +(let keyExtractor (lambda '(item) (Member item 'key))) +(let init (lambda '(key item) (FromString (Member item 'subkey) 'Uint32))) +(let update (lambda '(key item state) (+ state (FromString (Member item 'subkey) 'Uint32)))) +(let finish (lambda '(key state) (block '( + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (Coalesce (Map state (lambda '(x) (ToString x))) (String '"")))) + (return (Just s)) +)))) +(let table2 (CombineByKey table1 preMap keyExtractor init update finish)) +(let result (Sort table2 (Bool 'true) (lambda '(x) (Member x 'key)))) +(let mr_sink (DataSink 'yt 'plato)) +(let world (Write! world mr_sink (Key '('table (String 'Output))) result '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/IteratorInMap.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/IteratorInMap.yql new file mode 100644 index 0000000000..fcc89eb21c --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/IteratorInMap.yql @@ -0,0 +1,20 @@ +( +#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 handler (lambda '(row) (block '( + (let value (Member row 'value)) + (return (ReplaceMember row 'value (Collect (Iterator (AsList value value))))) + )))) +(let data (Map table1 handler)) +(let data (Sort data (Bool 'true) (lambda '(row) (Member row 'key)))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) data '('('mode 'append)))) +(let res_sink (DataSink 'result)) +(let world (Write! world res_sink (Key) data '('('type)))) +(let world (Commit! world mr_sink)) +(let world (Commit! world res_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LMapOverTable.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LMapOverTable.yql new file mode 100644 index 0000000000..f86f4c0c21 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LMapOverTable.yql @@ -0,0 +1,20 @@ +( +#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 tresh (Int32 '100)) +(let table1low (LMap table1 (lambda '(stream) (block '( + (return (FlatMap stream (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let ret (FlatMap intValueOpt (lambda '(item2) (block '( + (return (ListIf (< item2 tresh) item)) + ))))) + (return ret)))))) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LengthOfTableInsideMap.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LengthOfTableInsideMap.yql new file mode 100644 index 0000000000..ccbd5bbbb4 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LengthOfTableInsideMap.yql @@ -0,0 +1,24 @@ +( +#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 x (Read! world mr_source (Key '('table (String 'Input2))) '('key 'subkey 'value) '())) +(let world (Left! x)) +(let table2 (Right! x)) +(let table3 (Map table1 (lambda '(item) (block '( + (let s (AsStruct + '('key (Member item 'key)) + '('subkey (ToString (Length table2))) + '('value (Member item 'value)) + )) + + (return s) +))))) + +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table3 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LengthOfTempTableInsideMap.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LengthOfTempTableInsideMap.yql new file mode 100644 index 0000000000..d2e6fd6aec --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/LengthOfTempTableInsideMap.yql @@ -0,0 +1,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 tresh (Int32 'x"64000000")) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let ret (FlatMap intValueOpt (lambda '(item2) (block '( + (return (ListIf (< item2 tresh) item)) + ))))) + (return ret) +))))) + +(let table2 (Map table1 (lambda '(item) (block '( + (let s (AsStruct + '('key (Member item 'key)) + '('subkey (ToString (Length table1low))) + '('value (Member item 'value)) + )) + + (return s) +))))) + +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOther.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOther.cfg new file mode 100644 index 0000000000..8e3bf0495d --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOther.cfg @@ -0,0 +1,2 @@ +in Input input_other.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOther.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOther.yql new file mode 100644 index 0000000000..e8caad830b --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOther.yql @@ -0,0 +1,19 @@ +( +#comment +(let mr_source (DataSource 'yt 'plato)) +(let x (Read! world mr_source (Key '('table (String 'Input))) '('_other) '())) +(let world (Left! x)) +(let table1 (Right! x)) +(let tresh (String 'abc)) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let value (Lookup (Member item '_other) (String 'value)) ) + (let ret (FlatMap value (lambda '(item2) (block '( + (return (ListIf (== item2 tresh) item)) + ))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherMixed.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherMixed.cfg new file mode 100644 index 0000000000..846f89d5a3 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherMixed.cfg @@ -0,0 +1,3 @@ +in Input1 input_other.txt +in Input2 input_other_strict.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherMixed.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherMixed.yql new file mode 100644 index 0000000000..772527f2f6 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherMixed.yql @@ -0,0 +1,19 @@ +( +#comment +(let mr_source (DataSource 'yt 'plato)) +(let x (Read! world mr_source '((Key '('table (String 'Input1))) (Key '('table (String 'Input2)))) '('_other) '())) +(let world (Left! x)) +(let table1 (Right! x)) +(let tresh (String 'abc)) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let value (Lookup (Member item '_other) (String 'value)) ) + (let ret (FlatMap value (lambda '(item2) (block '( + (return (ListIf (== item2 tresh) item)) + ))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherStrict.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherStrict.cfg new file mode 100644 index 0000000000..23b0cd29bd --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherStrict.cfg @@ -0,0 +1,2 @@ +in Input input_other_strict.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherStrict.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherStrict.yql new file mode 100644 index 0000000000..e8caad830b --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapOtherStrict.yql @@ -0,0 +1,19 @@ +( +#comment +(let mr_source (DataSource 'yt 'plato)) +(let x (Read! world mr_source (Key '('table (String 'Input))) '('_other) '())) +(let world (Left! x)) +(let table1 (Right! x)) +(let tresh (String 'abc)) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let value (Lookup (Member item '_other) (String 'value)) ) + (let ret (FlatMap value (lambda '(item2) (block '( + (return (ListIf (== item2 tresh) item)) + ))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapStream.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapStream.yql new file mode 100644 index 0000000000..e9fe1806e8 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MapStream.yql @@ -0,0 +1,19 @@ +( +#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 tresh (Int32 '100)) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let ret (Collect (FlatMap intValueOpt (lambda '(item2) (block '( + (return (Iterator (ListIf (< item2 tresh) item))) + )))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MissingColumn.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MissingColumn.yql new file mode 100644 index 0000000000..73e0d903b4 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/MissingColumn.yql @@ -0,0 +1,19 @@ +( +#comment +(let mr_source (DataSource 'yt 'plato)) +(let x (Read! world mr_source (Key '('table (String 'Input))) '('key 'subkey2 'value) '())) +(let world (Left! x)) +(let table1 (Right! x)) +(let tresh (Int32 'x"64000000")) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let ret (FlatMap intValueOpt (lambda '(item2) (block '( + (return (ListIf (< item2 tresh) item)) + ))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/OrderedLMapOverTable.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/OrderedLMapOverTable.cfg new file mode 100644 index 0000000000..ad52c79527 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/OrderedLMapOverTable.cfg @@ -0,0 +1,2 @@ +in Input input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/OrderedLMapOverTable.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/OrderedLMapOverTable.yql new file mode 100644 index 0000000000..cb740182a1 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/OrderedLMapOverTable.yql @@ -0,0 +1,20 @@ +( +#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 tresh (Int32 '100)) +(let table1low (OrderedLMap table1 (lambda '(stream) (block '( + (return (OrderedFlatMap stream (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let ret (FlatMap intValueOpt (lambda '(item2) (block '( + (return (ListIf (< item2 tresh) item)) + ))))) + (return ret)))))) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKey.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKey.cfg new file mode 100644 index 0000000000..d87afdedc4 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKey.cfg @@ -0,0 +1,2 @@ +in Input program26.input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKey.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKey.yql new file mode 100644 index 0000000000..2645b699e4 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKey.yql @@ -0,0 +1,24 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(groups) (block '( + (return (Map groups (lambda '(group) (block '( + (let key (Nth group '0)) + (let stream (Nth group '1)) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (ToString (Length (ForwardList stream))))) + (return s) + ))))) +)))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void) listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeySorted.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeySorted.cfg new file mode 100644 index 0000000000..d87afdedc4 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeySorted.cfg @@ -0,0 +1,2 @@ +in Input program26.input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeySorted.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeySorted.yql new file mode 100644 index 0000000000..88c71a6f9d --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeySorted.yql @@ -0,0 +1,25 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let sortKeySelector (lambda '(x) (Member x 'value))) +(let listHandler (lambda '(groups) (block '( + (return (Map groups (lambda '(group) (block '( + (let key (Nth group '0)) + (let stream (Nth group '1)) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (Collect (Condense stream (String '"") (lambda '(item state) (Bool 'False)) (lambda '(item state) (Concat (Concat state (String '" ")) (Member item 'value))))))) + (return s) + ))))) +)))) +(let reducedTable (PartitionByKey table1 keySelector (Bool 'false) sortKeySelector listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeyStream.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeyStream.cfg new file mode 100644 index 0000000000..7e61f75847 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeyStream.cfg @@ -0,0 +1,2 @@ +in Input SomeKeys.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeyStream.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeyStream.yql new file mode 100644 index 0000000000..938bb3e859 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/PartitionByKeyStream.yql @@ -0,0 +1,23 @@ +( +#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 keyExtractor (lambda '(item) (Member item 'key))) +(let handler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (ForwardList (Nth pair '1))) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (ToString (Length list)))) + (return (Iterator (AsList s))) +)))))) +(let table2 (PartitionByKey table1 keyExtractor (Void) (Void) handler)) +(let mr_sink (DataSink 'yt 'plato)) +(let result (Sort table2 (Bool 'true) (lambda '(x) (Member x 'key)))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) result '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Skip.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Skip.yql new file mode 100644 index 0000000000..f7d625e18f --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Skip.yql @@ -0,0 +1,13 @@ +( +#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 offset (Uint64 '1)) +(let table2 (Skip table1 offset)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SkipTakeThenMap.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SkipTakeThenMap.yql new file mode 100644 index 0000000000..5af618e78f --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SkipTakeThenMap.yql @@ -0,0 +1,21 @@ +( +#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 table1 (Skip table1 (Uint64 '1))) +(let table1 (Take table1 (Uint64 '2))) +(let table1map (Map table1 (lambda '(item) (block '( + (let value (Member item 'value)) + (let s (Struct)) + (let s (AddMember s 'key (Member item 'key))) + (let s (AddMember s 'subkey (String '""))) + (let s (AddMember s 'value value)) + (return s) +))))) +(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) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SomeKeys.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SomeKeys.txt new file mode 100644 index 0000000000..6d0b5b4d40 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SomeKeys.txt @@ -0,0 +1,7 @@ +{"key"="075";"subkey"="1";"value"="abc"}; +{"key"="075";"subkey"="2";"value"="abc2"}; +{"key"="075";"subkey"="3";"value"="abc3"}; +{"key"="800";"subkey"="4";"value"="ddd"}; +{"key"="020";"subkey"="5";"value"="q"}; +{"key"="150";"subkey"="6";"value"="qzz"}; +{"key"="150";"subkey"="7";"value"="zz"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SomeKeys.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SomeKeys.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/SomeKeys.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/TableInsertCastList.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/TableInsertCastList.yql new file mode 100644 index 0000000000..ce2f6fa8eb --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/TableInsertCastList.yql @@ -0,0 +1,53 @@ +( +(let world (block '( + (let x (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"Input"))) '('"key") '())) + (let world (Left! x)) + (let table0 (Right! x)) + (let values (block '( + (let select (block '( + (let core table0) + (let core (Filter core (lambda '(row) (Coalesce ("<" (Member row '"key") (String '"100")) (Bool 'false))))) + (let core (FlatMap core (lambda '(row) (block '( + (let res (Struct)) + (let res (AddMember res '"value" (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 (AsList res)) + (return res) + ))))) + (return core) + ))) + (return select) + ))) + (let world (block '( + (let sink (DataSink '"yt" '"plato")) + (let world (Write! world sink (Key '('table (String '"Output"))) values '('('mode 'append)))) + (return (Commit! world sink)) + ))) + (return world) +))) +(let world (block '( + (let x (Read! world (DataSource '"yt" '"plato") (Key '('table (String '"Input"))) '('"key") '())) + (let world (Left! x)) + (let table0 (Right! x)) + (let values (block '( + (let select (block '( + (let core table0) + (let core (Filter core (lambda '(row) (Coalesce (">=" (Member row '"key") (String '"100")) (Bool 'false))))) + (let core (FlatMap core (lambda '(row) (block '( + (let res (Struct)) + (let res (AddMember res '"value" (Int64 '"1"))) + (let res (AsList res)) + (return res) + ))))) + (return core) + ))) + (return select) + ))) + (let world (block '( + (let sink (DataSink '"yt" '"plato")) + (let world (Write! world sink (Key '('table (String '"Output"))) values '('('mode 'append)))) + (return (Commit! world sink)) + ))) + (return world) +))) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Take.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Take.yql new file mode 100644 index 0000000000..6a8c55c92d --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/Take.yql @@ -0,0 +1,13 @@ +( +#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 limit (Uint64 '2)) +(let table2 (Take table1 limit)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/ZipInsideReduce.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/ZipInsideReduce.cfg new file mode 100644 index 0000000000..7e61f75847 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/ZipInsideReduce.cfg @@ -0,0 +1,2 @@ +in Input SomeKeys.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/ZipInsideReduce.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/ZipInsideReduce.yql new file mode 100644 index 0000000000..80371ba528 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/ZipInsideReduce.yql @@ -0,0 +1,26 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (Collect (Nth pair '1))) + (let list (Zip list (Skip list (Uint64 '1)))) + (let r (FlatMap list (lambda '(x) (block '( + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (Concat (Member (Nth x '0) 'value) (ToString (Member (Nth x '1) 'value))))) + (return (AsList s)) + ))))) + (return r) +)))))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void) listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/default.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/default.cfg new file mode 100644 index 0000000000..d481615947 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/default.cfg @@ -0,0 +1,4 @@ +in Input input.txt +out Output output.txt +in Input2 input.txt +out Output2 output2.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input.txt new file mode 100644 index 0000000000..65949ea745 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input.txt @@ -0,0 +1,4 @@ +{"key"="075";"subkey"="1";"value"="abc"}; +{"key"="800";"subkey"="2";"value"="ddd"}; +{"key"="020";"subkey"="3";"value"="q"}; +{"key"="150";"subkey"="4";"value"="qzz"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input2.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input2.txt new file mode 100644 index 0000000000..3803cb8d65 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input2.txt @@ -0,0 +1,3 @@ +{"key"="a";"subkey"="1";"value"="b"}; +{"key"="c";"subkey"="2";"value"="d"}; +{"key"="e";"subkey"="3";"value"="f"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input2.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input2.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input2.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_empty.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_empty.txt new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_empty.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_empty.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_empty.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_empty.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other.txt new file mode 100644 index 0000000000..65949ea745 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other.txt @@ -0,0 +1,4 @@ +{"key"="075";"subkey"="1";"value"="abc"}; +{"key"="800";"subkey"="2";"value"="ddd"}; +{"key"="020";"subkey"="3";"value"="q"}; +{"key"="150";"subkey"="4";"value"="qzz"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other.txt.attr new file mode 100644 index 0000000000..8cc87a0668 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other.txt.attr @@ -0,0 +1,10 @@ +{ + "schema" = < + "strict" = %false; + "unique_keys" = %false + > + [{ + "name" = "key"; + "type" = "string" + }]; +} diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other_strict.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other_strict.txt new file mode 100644 index 0000000000..b043b210b0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other_strict.txt @@ -0,0 +1,4 @@ +{"key"="075";"_other"=[["subkey";"1"];["value";"abc"]]}; +{"key"="800";"_other"=[["subkey";"2"];["value";"ddd"]]}; +{"key"="020";"_other"=[["subkey";"3"];["value";"q"]]}; +{"key"="150";"_other"=[["subkey";"4"];["value";"qzz"]]}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other_strict.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other_strict.txt.attr new file mode 100644 index 0000000000..e7d68f4eea --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/input_other_strict.txt.attr @@ -0,0 +1,28 @@ +{ + "_yql_row_spec" = {"Type" = [ + "StructType"; + [ + [ + "_other"; + [ + "DictType"; + [ + "DataType"; + "String" + ]; + [ + "DataType"; + "String" + ] + ] + ]; + [ + "key"; + [ + "DataType"; + "Yson" + ] + ] + ] + ]}; +} diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program1.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program1.yql new file mode 100644 index 0000000000..47e3d28b9e --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program1.yql @@ -0,0 +1,19 @@ +( +#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 tresh (Int32 'x"64000000")) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let ret (FlatMap intValueOpt (lambda '(item2) (block '( + (return (ListIf (< item2 tresh) item)) + ))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program10.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program10.yql new file mode 100644 index 0000000000..8abd57a84b --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program10.yql @@ -0,0 +1,14 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1low2 (Filter table1low (lambda '(item2) (> (Member item2 'value) (String 'd))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program11.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program11.yql new file mode 100644 index 0000000000..746ca7e40b --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program11.yql @@ -0,0 +1,13 @@ +( +#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 tresh (ToString (+ (Int32 '100) (Int32 '200)))) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program12.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program12.yql new file mode 100644 index 0000000000..56a3ae6931 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program12.yql @@ -0,0 +1,16 @@ +( +#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 table1low (Filter table1 (lambda '(item) (block '( + (let tresh (String '100)) + (let predicate (< (Member item 'key) tresh)) + (return predicate) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program13.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program13.yql new file mode 100644 index 0000000000..1b3276e796 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program13.yql @@ -0,0 +1,16 @@ +( +#comment +(let mr_source (DataSource 'yt 'plato)) +(let data (block '( + (let x (Read! world mr_source (Key '('table (String 'Input))) '('key 'subkey 'value) '())) + (let world (Left! x)) + (let table1 (Right! x)) + (let tresh (String '100)) + (let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) + (return table1low) +))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) data '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program14.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program14.yql new file mode 100644 index 0000000000..218e366ef9 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program14.yql @@ -0,0 +1,14 @@ +( +(let sink (DataSink 'yt 'plato)) +(let source (DataSource 'yt 'plato)) +(let table (Right! (Read! world source (Key '('table (String 'Input))) '('key 'subkey 'value) '()))) +(let filter (lambda '(item) (block '( + (let res (And (> (Member item 'value) (String 'd)) (< (Member item 'key) (String '100)))) + (return res) +) +))) +(let table (Filter table filter)) +(let world (Write! world sink (Key '('table (String 'Output))) table '('('mode 'append)))) +(let world (Commit! world sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program15.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program15.yql new file mode 100644 index 0000000000..de5a1d5a47 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program15.yql @@ -0,0 +1,14 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1low2 (Filter table1low (lambda '(item) (> (Member item 'key) (String '050))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program16.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program16.yql new file mode 100644 index 0000000000..0347e8bef3 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program16.yql @@ -0,0 +1,20 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1new (Map table1low (lambda '(item) (block '( + (let s (Struct)) + (let s (AddMember s 'key (Concat (String '*) (Member item 'key)))) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (String '.))) + (return s) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1new '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program17.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program17.yql new file mode 100644 index 0000000000..de6ff0054b --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program17.yql @@ -0,0 +1,13 @@ +( +#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 tresh (String '100)) +(let table1low (FlatMap table1 (lambda '(item) (ListIf (< (Member item 'key) tresh) item)))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program18.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program18.yql new file mode 100644 index 0000000000..60ab38e5e0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program18.yql @@ -0,0 +1,23 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1new (Map table1low (lambda '(item) (block '( + (let s (Struct)) + (let s (AddMember s 'key (Concat (String '*) (Member item 'key)))) + (return s) +))))) +(let table1new2 (Map table1new (lambda '(item) (block '( + (let s (AddMember item 'subkey (String '.))) + (let s (AddMember s 'value (String '.))) + (return s) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1new2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program19.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program19.yql new file mode 100644 index 0000000000..0bd4afc826 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program19.yql @@ -0,0 +1,25 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1new (Map table1low (lambda '(item) (block '( + (let s (Struct)) + (let s (AddMember s 'key (Concat (String '*) (Member item 'key)))) + (return s) +))))) +(let table1new2 (FlatMap table1new (lambda '(item) (block '( + (let s (AddMember item 'value (String '.))) + (let s (AddMember s 'subkey (String '.))) + (let s (AsList s)) + (let s (Extend s s)) + (return s) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1new2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program2.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program2.cfg new file mode 100644 index 0000000000..3ad8212f69 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program2.cfg @@ -0,0 +1,4 @@ +in Input input.txt +in Input2 input2.txt +out Output output1.txt +out Output2 output2.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program2.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program2.yql new file mode 100644 index 0000000000..697af6afa2 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program2.yql @@ -0,0 +1,15 @@ +( +#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 mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1 '('('mode 'append)))) +(let x (Read! world mr_source (Key '('table (String 'Input2))) '('key 'subkey 'value) '())) +(let world (Left! x)) +(let table2 (Right! x)) +(let world (Write! world mr_sink (Key '('table (String 'Output2))) table2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program20.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program20.yql new file mode 100644 index 0000000000..237d4babc1 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program20.yql @@ -0,0 +1,25 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1new (Map table1low (lambda '(item) (block '( + (let s (Struct)) + (let s (AddMember s 'key (Concat (String '*) (Member item 'key)))) + (return s) +))))) +(let table1new2 (FlatMap table1new (lambda '(item) (block '( + (let s (AddMember item 'value (String '.))) + (let s (AddMember s 'subkey (String '.))) + (let s1 (AsList s)) + (let s (Append s1 s)) + (return s) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1new2 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program21.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program21.yql new file mode 100644 index 0000000000..8492d10a4d --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program21.yql @@ -0,0 +1,26 @@ +( +#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 tresh (String '100)) +(let table1low (Filter table1 (lambda '(item) (< (Member item 'key) tresh)))) +(let table1new (Map table1low (lambda '(item) (block '( + (let s (Struct)) + (let s (AddMember s 'key (Concat (String '*) (Member item 'key)))) + (return s) +))))) +(let table1new2 (FlatMap table1new (lambda '(item) (block '( + (let s (AddMember item 'value (String '.))) + (let s (AddMember s 'subkey (String '.))) + (let s1 (AsList s)) + (let s (Append s1 s)) + (return s) +))))) +(let table1new3 (Filter table1new2 (lambda '(item) (> (Member item 'key) (String '*030))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1new3 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program22.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program22.yql new file mode 100644 index 0000000000..76674f13da --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program22.yql @@ -0,0 +1,13 @@ +( +#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 table1sorted (Sort table1 (Bool 'true) (lambda '(item) (Member item 'key)))) +#(let table1sorted (Sort table1 (Tuple (Bool 'true) (Bool 'false)) (lambda '(item) (Tuple (Member item 'key) (Member item 'value))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1sorted '())) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program23.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program23.yql new file mode 100644 index 0000000000..378711e378 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program23.yql @@ -0,0 +1,21 @@ +( +#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 tresh (Int32 '100)) +(let table1low (FlatMap table1 (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let optPlus50 (Map intValueOpt (lambda '(item2) (+ (Int32 '50) item2)))) + (let ret (FlatMap optPlus50 (lambda '(item2) (block '( + (let s (ListIf (< item2 tresh) item)) + (return s) + ))))) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1low '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program24.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program24.yql new file mode 100644 index 0000000000..1c3c39d3ea --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program24.yql @@ -0,0 +1,19 @@ +( +#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 table1even (FlatMap table1 (lambda '(item) (block '( + (let intValueOpt (FromString (Member item 'key) 'Int32)) + (let equalsZero (lambda '(x) (== x (Int32 '0)))) + (let isEven (lambda '(x) (Coalesce (Map (% x (Int32 '2)) equalsZero) (Bool 'false)))) + (let filteredValue (Filter intValueOpt isEven)) + (let ret (ListIf (Exists filteredValue) item)) + (return ret) +))))) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1even '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.cfg new file mode 100644 index 0000000000..d87afdedc4 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.cfg @@ -0,0 +1,2 @@ +in Input program26.input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.input.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.input.txt new file mode 100644 index 0000000000..55183cdd00 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.input.txt @@ -0,0 +1,4 @@ +{"key"="0";"subkey"="1";"value"="abc"}; +{"key"="8";"subkey"="2";"value"="ddd"}; +{"key"="0";"subkey"="3";"value"="q"}; +{"key"="1";"subkey"="4";"value"="qzz"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.input.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.input.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.input.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.yql new file mode 100644 index 0000000000..11dcbbbe57 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program26.yql @@ -0,0 +1,23 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (ForwardList (Nth pair '1))) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (ToString (Length list)))) + (let ret (Just s)) + (return ret) +)))))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void) listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.cfg new file mode 100644 index 0000000000..f23f5c9676 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.cfg @@ -0,0 +1,2 @@ +in Input program27.input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.input.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.input.txt new file mode 100644 index 0000000000..55183cdd00 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.input.txt @@ -0,0 +1,4 @@ +{"key"="0";"subkey"="1";"value"="abc"}; +{"key"="8";"subkey"="2";"value"="ddd"}; +{"key"="0";"subkey"="3";"value"="q"}; +{"key"="1";"subkey"="4";"value"="qzz"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.input.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.input.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.input.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.yql new file mode 100644 index 0000000000..2663ed1bb0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program27.yql @@ -0,0 +1,24 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (ForwardList (Nth pair '1))) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let revLen (Length (Reverse list))) + (let s (AddMember s 'subkey (String '.))) + (let s (AddMember s 'value (ToString revLen))) + (let ret (AsList s)) + (return ret) +)))))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void) listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.cfg new file mode 100644 index 0000000000..6f69ec10ac --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.cfg @@ -0,0 +1,2 @@ +in Input program28.input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.input.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.input.txt new file mode 100644 index 0000000000..c59dba9c7b --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.input.txt @@ -0,0 +1,9 @@ +{"key"="0";"subkey"="1";"value"="abc"}; +{"key"="1";"subkey"="2";"value"="qzz"}; +{"key"="2";"subkey"="3";"value"="uuu"}; +{"key"="0";"subkey"="4";"value"="aa"}; +{"key"="0";"subkey"="5";"value"="asd"}; +{"key"="0";"subkey"="6";"value"="asd"}; +{"key"="0";"subkey"="7";"value"="ss"}; +{"key"="0";"subkey"="8";"value"="ss"}; +{"key"="2";"subkey"="9";"value"="qqq"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.input.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.input.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.input.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.yql new file mode 100644 index 0000000000..8ad311cd3c --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program28.yql @@ -0,0 +1,26 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (ForwardList (Nth pair '1))) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let list1 (Take list (Uint64 '5))) + (let list2 (Skip list (Uint64 '1))) + (let x (Concat (Concat (ToString (Length list1)) (String '"_")) (ToString (Length list2)))) + (let s (AddMember s 'value (ToString x))) + (let ret (AsList s)) + (return ret) +)))))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void) listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.cfg b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.cfg new file mode 100644 index 0000000000..3123d957f8 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.cfg @@ -0,0 +1,2 @@ +in Input program29.input.txt +out Output output.txt diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.input.txt b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.input.txt new file mode 100644 index 0000000000..684f20f67a --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.input.txt @@ -0,0 +1,5 @@ +{"key"="0";"subkey"="1";"value"="15"}; +{"key"="8";"subkey"="2";"value"="23"}; +{"key"="0";"subkey"="3";"value"="3"}; +{"key"="1";"subkey"="4";"value"="10"}; +{"key"="2";"subkey"="5";"value"="zzz"}; diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.input.txt.attr b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.input.txt.attr new file mode 100644 index 0000000000..b6100e5fd0 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.input.txt.attr @@ -0,0 +1,30 @@ +{ + "_yql_row_spec" = { + "Type" = [ + "StructType"; + [ + [ + "key"; + [ + "DataType"; + "String" + ] + ]; + [ + "subkey"; + [ + "DataType"; + "String" + ] + ]; + [ + "value"; + [ + "DataType"; + "String" + ] + ] + ] + ] + } +}
\ No newline at end of file diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.yql new file mode 100644 index 0000000000..40a2407e1f --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program29.yql @@ -0,0 +1,25 @@ +( +#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 keySelector (lambda '(x) (Member x 'key))) +(let listHandler (lambda '(stream) (FlatMap stream (lambda '(pair) (block '( + (let key (Nth pair '0)) + (let list (ForwardList (Nth pair '1))) + (let s (Struct)) + (let s (AddMember s 'key key)) + (let s (AddMember s 'subkey (String '.))) + (let ilist (FlatMap list (lambda '(item) (FromString (Member item 'value) 'Int32)))) + (let sum (Fold ilist (Int32 '0) (lambda '(item state) (+ item state)))) + (let s (AddMember s 'value (ToString sum))) + (let ret (AsList s)) + (return ret) +)))))) +(let reducedTable (PartitionByKey table1 keySelector (Void) (Void) listHandler)) +(let mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) reducedTable '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program8.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program8.yql new file mode 100644 index 0000000000..894e1a15a1 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program8.yql @@ -0,0 +1,11 @@ +( +#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 mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) diff --git a/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program9.yql b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program9.yql new file mode 100644 index 0000000000..894e1a15a1 --- /dev/null +++ b/yql/essentials/tests/s-expressions/suites/SingleYamrOperation/program9.yql @@ -0,0 +1,11 @@ +( +#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 mr_sink (DataSink 'yt (quote plato))) +(let world (Write! world mr_sink (Key '('table (String 'Output))) table1 '('('mode 'append)))) +(let world (Commit! world mr_sink)) +(return world) +) |