Если вы выполняете работу по сокращению карты из командной строки, вы можете увеличить кучу, используя параметр -D 'mapreduce.map.java.opts=-Xmx1024m'
и / или -D 'mapreduce.reduce.java.opts = -Xmx1024m'. Пример:
hadoop --config /etc/hadoop/conf jar /usr/lib/hbase-solr/tools/hbase-indexer-mr-*-job.jar --conf /etc/hbase/conf/hbase-site.xml -D 'mapreduce.map.java.opts=-Xmx1024m' --hbase-indexer-file $HOME/morphline-hbase-mapper.xml --zk-host 127.0.0.1/solr --collection hbase-collection1 --go-live --log4j /home/cloudera/morphlines/log4j.properties
Обратите внимание, что в некоторых документах Cloudera они все еще используют старые параметры mapred.child.java.opts
, mapred.map.child.java.opts
и mapred.reduce.child.java.opts
. Эти параметры больше не работают для Hadoop 2 (см. . Какова связь между «mapreduce.map.memory.mb» и «mapred.map.child.java.opts» в Apache Hadoop YARN? ). [/ д2]
Вы можете использовать array_agg(value ORDER BY time [ ASC | DESC ])
, как в примере ниже.
К сожалению, я не знаю, была ли эта опция доступна в 0.193. По крайней мере, этот ответ, надеюсь, будет полезен для других.
presto:tiny> with example_table as (
-> select * from (
-> values ('A', 1, 7), ('A', 2, 4), ('A', 3, 3),
-> ('B', 4, 6), ('B', 5, 5), ('A', 6, 2),
-> ('C', 7, 9), ('C', 8, 8)
-> ) example_table("id", "time", "value")
-> )
-> select array_agg(value order by time)
-> from example_table
-> group by id
-> ;
_col0
--------------
[6, 5]
[7, 4, 3, 2]
[9, 8]
(3 rows)