PREHOOK: query: CREATE TABLE DEST1(key ARRAY, value BIGINT) STORED AS TEXTFILE PREHOOK: type: CREATETABLE POSTHOOK: query: CREATE TABLE DEST1(key ARRAY, value BIGINT) STORED AS TEXTFILE POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@DEST1 PREHOOK: query: CREATE TABLE DEST2(key MAP, value BIGINT) STORED AS TEXTFILE PREHOOK: type: CREATETABLE POSTHOOK: query: CREATE TABLE DEST2(key MAP, value BIGINT) STORED AS TEXTFILE POSTHOOK: type: CREATETABLE POSTHOOK: Output: default@DEST2 PREHOOK: query: EXPLAIN FROM SRC INSERT OVERWRITE TABLE DEST1 SELECT ARRAY(SRC.key), COUNT(1) GROUP BY ARRAY(SRC.key) INSERT OVERWRITE TABLE DEST2 SELECT MAP(SRC.key, SRC.value), COUNT(1) GROUP BY MAP(SRC.key, SRC.value) PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN FROM SRC INSERT OVERWRITE TABLE DEST1 SELECT ARRAY(SRC.key), COUNT(1) GROUP BY ARRAY(SRC.key) INSERT OVERWRITE TABLE DEST2 SELECT MAP(SRC.key, SRC.value), COUNT(1) GROUP BY MAP(SRC.key, SRC.value) POSTHOOK: type: QUERY ABSTRACT SYNTAX TREE: (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME SRC))) (TOK_INSERT (TOK_DESTINATION (TOK_TAB (TOK_TABNAME DEST1))) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION ARRAY (. (TOK_TABLE_OR_COL SRC) key))) (TOK_SELEXPR (TOK_FUNCTION COUNT 1))) (TOK_GROUPBY (TOK_FUNCTION ARRAY (. (TOK_TABLE_OR_COL SRC) key)))) (TOK_INSERT (TOK_DESTINATION (TOK_TAB (TOK_TABNAME DEST2))) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION MAP (. (TOK_TABLE_OR_COL SRC) key) (. (TOK_TABLE_OR_COL SRC) value))) (TOK_SELEXPR (TOK_FUNCTION COUNT 1))) (TOK_GROUPBY (TOK_FUNCTION MAP (. (TOK_TABLE_OR_COL SRC) key) (. (TOK_TABLE_OR_COL SRC) value))))) STAGE DEPENDENCIES: Stage-2 is a root stage Stage-0 depends on stages: Stage-2 Stage-3 depends on stages: Stage-0 Stage-4 depends on stages: Stage-2 Stage-1 depends on stages: Stage-4 Stage-5 depends on stages: Stage-1 STAGE PLANS: Stage: Stage-2 Map Reduce Alias -> Map Operator Tree: src TableScan alias: src Select Operator expressions: expr: key type: string outputColumnNames: key Group By Operator aggregations: expr: count(1) bucketGroup: false keys: expr: array(key) type: array mode: hash outputColumnNames: _col0, _col1 Reduce Output Operator key expressions: expr: _col0 type: array sort order: + Map-reduce partition columns: expr: _col0 type: array tag: -1 value expressions: expr: _col1 type: bigint Select Operator expressions: expr: key type: string expr: value type: string outputColumnNames: key, value Group By Operator aggregations: expr: count(1) bucketGroup: false keys: expr: map(key:value) type: map mode: hash outputColumnNames: _col0, _col1 File Output Operator compressed: false GlobalTableId: 0 table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat Reduce Operator Tree: Group By Operator aggregations: expr: count(VALUE._col0) bucketGroup: false keys: expr: KEY._col0 type: array mode: mergepartial outputColumnNames: _col0, _col1 Select Operator expressions: expr: _col0 type: array expr: _col1 type: bigint outputColumnNames: _col0, _col1 File Output Operator compressed: false GlobalTableId: 1 table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest1 Stage: Stage-0 Move Operator tables: replace: true table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest1 Stage: Stage-3 Stats-Aggr Operator Stage: Stage-4 Map Reduce Alias -> Map Operator Tree: #### A masked pattern was here #### Reduce Output Operator key expressions: expr: _col0 type: map sort order: + Map-reduce partition columns: expr: _col0 type: map tag: -1 value expressions: expr: _col1 type: bigint Reduce Operator Tree: Group By Operator aggregations: expr: count(VALUE._col0) bucketGroup: false keys: expr: KEY._col0 type: map mode: mergepartial outputColumnNames: _col0, _col1 Select Operator expressions: expr: _col0 type: map expr: _col1 type: bigint outputColumnNames: _col0, _col1 File Output Operator compressed: false GlobalTableId: 2 table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest2 Stage: Stage-1 Move Operator tables: replace: true table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: default.dest2 Stage: Stage-5 Stats-Aggr Operator PREHOOK: query: FROM SRC INSERT OVERWRITE TABLE DEST1 SELECT ARRAY(SRC.key), COUNT(1) GROUP BY ARRAY(SRC.key) INSERT OVERWRITE TABLE DEST2 SELECT MAP(SRC.key, SRC.value), COUNT(1) GROUP BY MAP(SRC.key, SRC.value) PREHOOK: type: QUERY PREHOOK: Input: default@src PREHOOK: Output: default@dest1 PREHOOK: Output: default@dest2 POSTHOOK: query: FROM SRC INSERT OVERWRITE TABLE DEST1 SELECT ARRAY(SRC.key), COUNT(1) GROUP BY ARRAY(SRC.key) INSERT OVERWRITE TABLE DEST2 SELECT MAP(SRC.key, SRC.value), COUNT(1) GROUP BY MAP(SRC.key, SRC.value) POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Output: default@dest1 POSTHOOK: Output: default@dest2 POSTHOOK: Lineage: dest1.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.value EXPRESSION [(src)src.null, ] POSTHOOK: Lineage: dest2.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), (src)src.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest2.value EXPRESSION [(src)src.null, ] PREHOOK: query: SELECT DEST1.* FROM DEST1 PREHOOK: type: QUERY PREHOOK: Input: default@dest1 #### A masked pattern was here #### POSTHOOK: query: SELECT DEST1.* FROM DEST1 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 #### A masked pattern was here #### POSTHOOK: Lineage: dest1.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.value EXPRESSION [(src)src.null, ] POSTHOOK: Lineage: dest2.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), (src)src.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest2.value EXPRESSION [(src)src.null, ] ["0"] 3 ["10"] 1 ["100"] 2 ["103"] 2 ["104"] 2 ["105"] 1 ["11"] 1 ["111"] 1 ["113"] 2 ["114"] 1 ["116"] 1 ["118"] 2 ["119"] 3 ["12"] 2 ["120"] 2 ["125"] 2 ["126"] 1 ["128"] 3 ["129"] 2 ["131"] 1 ["133"] 1 ["134"] 2 ["136"] 1 ["137"] 2 ["138"] 4 ["143"] 1 ["145"] 1 ["146"] 2 ["149"] 2 ["15"] 2 ["150"] 1 ["152"] 2 ["153"] 1 ["155"] 1 ["156"] 1 ["157"] 1 ["158"] 1 ["160"] 1 ["162"] 1 ["163"] 1 ["164"] 2 ["165"] 2 ["166"] 1 ["167"] 3 ["168"] 1 ["169"] 4 ["17"] 1 ["170"] 1 ["172"] 2 ["174"] 2 ["175"] 2 ["176"] 2 ["177"] 1 ["178"] 1 ["179"] 2 ["18"] 2 ["180"] 1 ["181"] 1 ["183"] 1 ["186"] 1 ["187"] 3 ["189"] 1 ["19"] 1 ["190"] 1 ["191"] 2 ["192"] 1 ["193"] 3 ["194"] 1 ["195"] 2 ["196"] 1 ["197"] 2 ["199"] 3 ["2"] 1 ["20"] 1 ["200"] 2 ["201"] 1 ["202"] 1 ["203"] 2 ["205"] 2 ["207"] 2 ["208"] 3 ["209"] 2 ["213"] 2 ["214"] 1 ["216"] 2 ["217"] 2 ["218"] 1 ["219"] 2 ["221"] 2 ["222"] 1 ["223"] 2 ["224"] 2 ["226"] 1 ["228"] 1 ["229"] 2 ["230"] 5 ["233"] 2 ["235"] 1 ["237"] 2 ["238"] 2 ["239"] 2 ["24"] 2 ["241"] 1 ["242"] 2 ["244"] 1 ["247"] 1 ["248"] 1 ["249"] 1 ["252"] 1 ["255"] 2 ["256"] 2 ["257"] 1 ["258"] 1 ["26"] 2 ["260"] 1 ["262"] 1 ["263"] 1 ["265"] 2 ["266"] 1 ["27"] 1 ["272"] 2 ["273"] 3 ["274"] 1 ["275"] 1 ["277"] 4 ["278"] 2 ["28"] 1 ["280"] 2 ["281"] 2 ["282"] 2 ["283"] 1 ["284"] 1 ["285"] 1 ["286"] 1 ["287"] 1 ["288"] 2 ["289"] 1 ["291"] 1 ["292"] 1 ["296"] 1 ["298"] 3 ["30"] 1 ["302"] 1 ["305"] 1 ["306"] 1 ["307"] 2 ["308"] 1 ["309"] 2 ["310"] 1 ["311"] 3 ["315"] 1 ["316"] 3 ["317"] 2 ["318"] 3 ["321"] 2 ["322"] 2 ["323"] 1 ["325"] 2 ["327"] 3 ["33"] 1 ["331"] 2 ["332"] 1 ["333"] 2 ["335"] 1 ["336"] 1 ["338"] 1 ["339"] 1 ["34"] 1 ["341"] 1 ["342"] 2 ["344"] 2 ["345"] 1 ["348"] 5 ["35"] 3 ["351"] 1 ["353"] 2 ["356"] 1 ["360"] 1 ["362"] 1 ["364"] 1 ["365"] 1 ["366"] 1 ["367"] 2 ["368"] 1 ["369"] 3 ["37"] 2 ["373"] 1 ["374"] 1 ["375"] 1 ["377"] 1 ["378"] 1 ["379"] 1 ["382"] 2 ["384"] 3 ["386"] 1 ["389"] 1 ["392"] 1 ["393"] 1 ["394"] 1 ["395"] 2 ["396"] 3 ["397"] 2 ["399"] 2 ["4"] 1 ["400"] 1 ["401"] 5 ["402"] 1 ["403"] 3 ["404"] 2 ["406"] 4 ["407"] 1 ["409"] 3 ["41"] 1 ["411"] 1 ["413"] 2 ["414"] 2 ["417"] 3 ["418"] 1 ["419"] 1 ["42"] 2 ["421"] 1 ["424"] 2 ["427"] 1 ["429"] 2 ["43"] 1 ["430"] 3 ["431"] 3 ["432"] 1 ["435"] 1 ["436"] 1 ["437"] 1 ["438"] 3 ["439"] 2 ["44"] 1 ["443"] 1 ["444"] 1 ["446"] 1 ["448"] 1 ["449"] 1 ["452"] 1 ["453"] 1 ["454"] 3 ["455"] 1 ["457"] 1 ["458"] 2 ["459"] 2 ["460"] 1 ["462"] 2 ["463"] 2 ["466"] 3 ["467"] 1 ["468"] 4 ["469"] 5 ["47"] 1 ["470"] 1 ["472"] 1 ["475"] 1 ["477"] 1 ["478"] 2 ["479"] 1 ["480"] 3 ["481"] 1 ["482"] 1 ["483"] 1 ["484"] 1 ["485"] 1 ["487"] 1 ["489"] 4 ["490"] 1 ["491"] 1 ["492"] 2 ["493"] 1 ["494"] 1 ["495"] 1 ["496"] 1 ["497"] 1 ["498"] 3 ["5"] 3 ["51"] 2 ["53"] 1 ["54"] 1 ["57"] 1 ["58"] 2 ["64"] 1 ["65"] 1 ["66"] 1 ["67"] 2 ["69"] 1 ["70"] 3 ["72"] 2 ["74"] 1 ["76"] 2 ["77"] 1 ["78"] 1 ["8"] 1 ["80"] 1 ["82"] 1 ["83"] 2 ["84"] 2 ["85"] 1 ["86"] 1 ["87"] 1 ["9"] 1 ["90"] 3 ["92"] 1 ["95"] 2 ["96"] 1 ["97"] 2 ["98"] 2 PREHOOK: query: SELECT DEST2.* FROM DEST2 PREHOOK: type: QUERY PREHOOK: Input: default@dest2 #### A masked pattern was here #### POSTHOOK: query: SELECT DEST2.* FROM DEST2 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest2 #### A masked pattern was here #### POSTHOOK: Lineage: dest1.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] POSTHOOK: Lineage: dest1.value EXPRESSION [(src)src.null, ] POSTHOOK: Lineage: dest2.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), (src)src.FieldSchema(name:value, type:string, comment:default), ] POSTHOOK: Lineage: dest2.value EXPRESSION [(src)src.null, ] {"0":"val_0"} 3 {"10":"val_10"} 1 {"100":"val_100"} 2 {"103":"val_103"} 2 {"104":"val_104"} 2 {"105":"val_105"} 1 {"11":"val_11"} 1 {"111":"val_111"} 1 {"113":"val_113"} 2 {"114":"val_114"} 1 {"116":"val_116"} 1 {"118":"val_118"} 2 {"119":"val_119"} 3 {"12":"val_12"} 2 {"120":"val_120"} 2 {"125":"val_125"} 2 {"126":"val_126"} 1 {"128":"val_128"} 3 {"129":"val_129"} 2 {"131":"val_131"} 1 {"133":"val_133"} 1 {"134":"val_134"} 2 {"136":"val_136"} 1 {"137":"val_137"} 2 {"138":"val_138"} 4 {"143":"val_143"} 1 {"145":"val_145"} 1 {"146":"val_146"} 2 {"149":"val_149"} 2 {"15":"val_15"} 2 {"150":"val_150"} 1 {"152":"val_152"} 2 {"153":"val_153"} 1 {"155":"val_155"} 1 {"156":"val_156"} 1 {"157":"val_157"} 1 {"158":"val_158"} 1 {"160":"val_160"} 1 {"162":"val_162"} 1 {"163":"val_163"} 1 {"164":"val_164"} 2 {"165":"val_165"} 2 {"166":"val_166"} 1 {"167":"val_167"} 3 {"168":"val_168"} 1 {"169":"val_169"} 4 {"17":"val_17"} 1 {"170":"val_170"} 1 {"172":"val_172"} 2 {"174":"val_174"} 2 {"175":"val_175"} 2 {"176":"val_176"} 2 {"177":"val_177"} 1 {"178":"val_178"} 1 {"179":"val_179"} 2 {"18":"val_18"} 2 {"180":"val_180"} 1 {"181":"val_181"} 1 {"183":"val_183"} 1 {"186":"val_186"} 1 {"187":"val_187"} 3 {"189":"val_189"} 1 {"19":"val_19"} 1 {"190":"val_190"} 1 {"191":"val_191"} 2 {"192":"val_192"} 1 {"193":"val_193"} 3 {"194":"val_194"} 1 {"195":"val_195"} 2 {"196":"val_196"} 1 {"197":"val_197"} 2 {"199":"val_199"} 3 {"2":"val_2"} 1 {"20":"val_20"} 1 {"200":"val_200"} 2 {"201":"val_201"} 1 {"202":"val_202"} 1 {"203":"val_203"} 2 {"205":"val_205"} 2 {"207":"val_207"} 2 {"208":"val_208"} 3 {"209":"val_209"} 2 {"213":"val_213"} 2 {"214":"val_214"} 1 {"216":"val_216"} 2 {"217":"val_217"} 2 {"218":"val_218"} 1 {"219":"val_219"} 2 {"221":"val_221"} 2 {"222":"val_222"} 1 {"223":"val_223"} 2 {"224":"val_224"} 2 {"226":"val_226"} 1 {"228":"val_228"} 1 {"229":"val_229"} 2 {"230":"val_230"} 5 {"233":"val_233"} 2 {"235":"val_235"} 1 {"237":"val_237"} 2 {"238":"val_238"} 2 {"239":"val_239"} 2 {"24":"val_24"} 2 {"241":"val_241"} 1 {"242":"val_242"} 2 {"244":"val_244"} 1 {"247":"val_247"} 1 {"248":"val_248"} 1 {"249":"val_249"} 1 {"252":"val_252"} 1 {"255":"val_255"} 2 {"256":"val_256"} 2 {"257":"val_257"} 1 {"258":"val_258"} 1 {"26":"val_26"} 2 {"260":"val_260"} 1 {"262":"val_262"} 1 {"263":"val_263"} 1 {"265":"val_265"} 2 {"266":"val_266"} 1 {"27":"val_27"} 1 {"272":"val_272"} 2 {"273":"val_273"} 3 {"274":"val_274"} 1 {"275":"val_275"} 1 {"277":"val_277"} 4 {"278":"val_278"} 2 {"28":"val_28"} 1 {"280":"val_280"} 2 {"281":"val_281"} 2 {"282":"val_282"} 2 {"283":"val_283"} 1 {"284":"val_284"} 1 {"285":"val_285"} 1 {"286":"val_286"} 1 {"287":"val_287"} 1 {"288":"val_288"} 2 {"289":"val_289"} 1 {"291":"val_291"} 1 {"292":"val_292"} 1 {"296":"val_296"} 1 {"298":"val_298"} 3 {"30":"val_30"} 1 {"302":"val_302"} 1 {"305":"val_305"} 1 {"306":"val_306"} 1 {"307":"val_307"} 2 {"308":"val_308"} 1 {"309":"val_309"} 2 {"310":"val_310"} 1 {"311":"val_311"} 3 {"315":"val_315"} 1 {"316":"val_316"} 3 {"317":"val_317"} 2 {"318":"val_318"} 3 {"321":"val_321"} 2 {"322":"val_322"} 2 {"323":"val_323"} 1 {"325":"val_325"} 2 {"327":"val_327"} 3 {"33":"val_33"} 1 {"331":"val_331"} 2 {"332":"val_332"} 1 {"333":"val_333"} 2 {"335":"val_335"} 1 {"336":"val_336"} 1 {"338":"val_338"} 1 {"339":"val_339"} 1 {"34":"val_34"} 1 {"341":"val_341"} 1 {"342":"val_342"} 2 {"344":"val_344"} 2 {"345":"val_345"} 1 {"348":"val_348"} 5 {"35":"val_35"} 3 {"351":"val_351"} 1 {"353":"val_353"} 2 {"356":"val_356"} 1 {"360":"val_360"} 1 {"362":"val_362"} 1 {"364":"val_364"} 1 {"365":"val_365"} 1 {"366":"val_366"} 1 {"367":"val_367"} 2 {"368":"val_368"} 1 {"369":"val_369"} 3 {"37":"val_37"} 2 {"373":"val_373"} 1 {"374":"val_374"} 1 {"375":"val_375"} 1 {"377":"val_377"} 1 {"378":"val_378"} 1 {"379":"val_379"} 1 {"382":"val_382"} 2 {"384":"val_384"} 3 {"386":"val_386"} 1 {"389":"val_389"} 1 {"392":"val_392"} 1 {"393":"val_393"} 1 {"394":"val_394"} 1 {"395":"val_395"} 2 {"396":"val_396"} 3 {"397":"val_397"} 2 {"399":"val_399"} 2 {"4":"val_4"} 1 {"400":"val_400"} 1 {"401":"val_401"} 5 {"402":"val_402"} 1 {"403":"val_403"} 3 {"404":"val_404"} 2 {"406":"val_406"} 4 {"407":"val_407"} 1 {"409":"val_409"} 3 {"41":"val_41"} 1 {"411":"val_411"} 1 {"413":"val_413"} 2 {"414":"val_414"} 2 {"417":"val_417"} 3 {"418":"val_418"} 1 {"419":"val_419"} 1 {"42":"val_42"} 2 {"421":"val_421"} 1 {"424":"val_424"} 2 {"427":"val_427"} 1 {"429":"val_429"} 2 {"43":"val_43"} 1 {"430":"val_430"} 3 {"431":"val_431"} 3 {"432":"val_432"} 1 {"435":"val_435"} 1 {"436":"val_436"} 1 {"437":"val_437"} 1 {"438":"val_438"} 3 {"439":"val_439"} 2 {"44":"val_44"} 1 {"443":"val_443"} 1 {"444":"val_444"} 1 {"446":"val_446"} 1 {"448":"val_448"} 1 {"449":"val_449"} 1 {"452":"val_452"} 1 {"453":"val_453"} 1 {"454":"val_454"} 3 {"455":"val_455"} 1 {"457":"val_457"} 1 {"458":"val_458"} 2 {"459":"val_459"} 2 {"460":"val_460"} 1 {"462":"val_462"} 2 {"463":"val_463"} 2 {"466":"val_466"} 3 {"467":"val_467"} 1 {"468":"val_468"} 4 {"469":"val_469"} 5 {"47":"val_47"} 1 {"470":"val_470"} 1 {"472":"val_472"} 1 {"475":"val_475"} 1 {"477":"val_477"} 1 {"478":"val_478"} 2 {"479":"val_479"} 1 {"480":"val_480"} 3 {"481":"val_481"} 1 {"482":"val_482"} 1 {"483":"val_483"} 1 {"484":"val_484"} 1 {"485":"val_485"} 1 {"487":"val_487"} 1 {"489":"val_489"} 4 {"490":"val_490"} 1 {"491":"val_491"} 1 {"492":"val_492"} 2 {"493":"val_493"} 1 {"494":"val_494"} 1 {"495":"val_495"} 1 {"496":"val_496"} 1 {"497":"val_497"} 1 {"498":"val_498"} 3 {"5":"val_5"} 3 {"51":"val_51"} 2 {"53":"val_53"} 1 {"54":"val_54"} 1 {"57":"val_57"} 1 {"58":"val_58"} 2 {"64":"val_64"} 1 {"65":"val_65"} 1 {"66":"val_66"} 1 {"67":"val_67"} 2 {"69":"val_69"} 1 {"70":"val_70"} 3 {"72":"val_72"} 2 {"74":"val_74"} 1 {"76":"val_76"} 2 {"77":"val_77"} 1 {"78":"val_78"} 1 {"8":"val_8"} 1 {"80":"val_80"} 1 {"82":"val_82"} 1 {"83":"val_83"} 2 {"84":"val_84"} 2 {"85":"val_85"} 1 {"86":"val_86"} 1 {"87":"val_87"} 1 {"9":"val_9"} 1 {"90":"val_90"} 3 {"92":"val_92"} 1 {"95":"val_95"} 2 {"96":"val_96"} 1 {"97":"val_97"} 2 {"98":"val_98"} 2