标签: mapreduce

MongoDB ODM如何使用map/reduce对某个字段进行分组?

我有一个文档集合,我想通过某个字段查询,按字段location对它们进行排序pos,并且只返回每个pos字段的最高值.

所以现在的查询看起来像这样:

$locations = array(1,2,3,4,5,6);

   $results = $this->dm->createQueryBuilder('\App\Document\Test')
        ->select('id', 'word', 'pos','change', 'title', 'coll_at', 'location')
        ->field('location')->in($locations)
        ->sort('location', 'asc')
        ->sort('pos', 'asc')
        ->getQuery()->execute();
Run Code Online (Sandbox Code Playgroud)

但是因为location每个具有不同的特定条目可以有多个条目pos,所以我必须创建一个foreach循环来操作之后的数据.在这种情况下,我可以采用该快捷方式只是在返回数据后更改数据,但我还有其他情况,根本不能这样做.所以我创建了这个较小的场景,试图找出如何使用Doctrine ODM的group查询,甚至是映射和减少它.不确定最好的方法.我看到很多获得跑步总数等的例子.

那么我如何创建一个查询来获得pos每个特定字段中最高的数值location?知道可能存在多个具有相同location但不同pos值的文档.最重要的是,拥有我在上面列出的所选记录的所有字段->select()

php doctrine mapreduce mongodb doctrine-odm

1
推荐指数
1
解决办法
7509
查看次数

mapreduce,排序值

我的映射器有一个输出:

Mapper: KEY, VALUE(Timestamp, someOtherAttrbibutes)
Run Code Online (Sandbox Code Playgroud)

我的减速机确实收到了:

Reducer: KEY, Iterable<VALUE(Timestamp, someOtherAttrbibutes)>
Run Code Online (Sandbox Code Playgroud)

我想Iterable<VALUE(Timestamp, someOtherAttrbibutes)>Timestamp属性排序.有没有可能实现它?

我想避免在Reducer代码中手动排序.http://cornercases.wordpress.com/2011/08/18/hadoop-object-reuse-pitfall-all-my-reducer-values-are-the-same/

我将不得不从Iterable"深度复制"所有对象,这会导致巨大的内存开销.:(((

java sorting hadoop mapreduce cloudera

1
推荐指数
1
解决办法
6184
查看次数

HADOOP :: java.lang.ClassNotFoundException:WordCount

我正在使用eclipse导出map-reduce程序的jar文件.当我使用命令运行jar时

 hadoop jar hadoop-prog.jar WordCount /home/temp/input /home/temp/output
Run Code Online (Sandbox Code Playgroud)

它总是显示错误:

   Exception in thread "main" java.lang.ClassNotFoundException: WordCount
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我从互联网上获得了wordcount的示例jar文件,它运行得很顺利.

我无法弄清楚问题出在哪里.

java hadoop mapreduce classnotfoundexception

1
推荐指数
1
解决办法
2万
查看次数

Hadoop找到任务尝试的主机名

我正在尝试以编程方式确定在将地图缩减作业提交到hadoop时,哪些任务尝试在我的群集中的哪个任务跟踪器上运行.我发现我可以从JobClient获取大部分任务数据,如下所示:

jobClient.getMapTaskReports(jobID)

但不是任务尝试成功的机器的主机名.有人知道如何从任务尝试ID中获取主机名吗?

java hadoop mapreduce

1
推荐指数
1
解决办法
397
查看次数

如何在hadoop mapreduce中进行lzo压缩?

我想使用lzo来压缩地图输出,但我无法运行它!我使用的Hadoop版本是0.20.2.我设置:

conf.set("mapred.compress.map.output", "true") 
conf.set("mapred.map.output.compression.codec",
"org.apache.hadoop.io.compress.LzoCodec");
Run Code Online (Sandbox Code Playgroud)

当我在Hadoop中运行jar文件时,它显示一个无法写入地图输出的异常.

我必须安装lzo吗?使用lzo我该怎么办?

hadoop mapreduce

1
推荐指数
1
解决办法
8202
查看次数

Hadoop M/R实施"People You Might Know"友情推荐

如何建立一个友情推荐系统,通过查看两个共有多少朋友,并使用mapreduce工作推荐他们作为朋友?有点像facebook或linkedin那样,显示推荐人的列表,并根据共同朋友的数量对它们进行排名.

java hadoop mapreduce data-mining

1
推荐指数
1
解决办法
8224
查看次数

在hadoop map中读取excel文件会减少

我试图在hadoop中读取包含一些聚合数据的Excel文件.地图缩减程序似乎工作正常但输出产生的格式不可读.我需要在Hadoop中使用任何特殊的InputFormat读取器用于Excel文件Map Reduce?.我的配置如下

   Configuration conf=getConf();
Job job=new Job(conf,"LatestWordCount");
job.setJarByClass(FlightDetailsCount.class);
Path input=new Path(args[0]);
Path output=new Path(args[1]);
FileInputFormat.setInputPaths(job, input);
FileOutputFormat.setOutputPath(job, output);
job.setMapperClass(MapClass.class);
job.setReducerClass(ReduceClass.class);
//job.setCombinerClass(ReduceClass.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
//job.setOutputKeyClass(Text.class);
//job.setOutputValueClass(Text.class);
System.exit(job.waitForCompletion(true)?0:1);
return 0;
Run Code Online (Sandbox Code Playgroud)

输出产品看起来像这样 KW O A ]n Ε r3 \n" p 6W jJ 9W f= 9ml dR y /Ք 7 ^ i M*Ք ^nz l ^ ) j ( dRͱ/7 TS* M//7 TS &jZoTSR7 @)oTӺ5{%+ۆw6- = E_}米)〜ʅ ژ :# j ] u >

hadoop mapreduce bigdata

1
推荐指数
1
解决办法
5563
查看次数

MongoDB - 使用聚合框架或mapreduce匹配文档中的字符串数组(配置文件匹配)

我正在构建一个可以比作约会应用程序的应用程序.

我有一些像这样结构的文件:

$ db.profiles.find().pretty()

[
  {
    "_id": 1,
    "firstName": "John",
    "lastName": "Smith",
    "fieldValues": [
      "favouriteColour|red",
      "food|pizza",
      "food|chinese"
    ]
  },
  {
    "_id": 2,
    "firstName": "Sarah",
    "lastName": "Jane",
    "fieldValues": [
      "favouriteColour|blue",
      "food|pizza",
      "food|mexican",
      "pets|yes"
    ]
  },
  {
    "_id": 3,
    "firstName": "Rachel",
    "lastName": "Jones",
    "fieldValues": [
      "food|pizza"
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

我正在努力识别在一个或多个上相互匹配的配置文件fieldValues.

所以,在上面的例子中,我理想的结果看起来像:

<some query>

result:
[
  {
    "_id": "507f1f77bcf86cd799439011",
    "dateCreated": "2013-12-01",
    "profiles": [
      {
        "_id": 1,
        "firstName": "John",
        "lastName": "Smith",
        "fieldValues": [
          "favouriteColour|red",
          "food|pizza",
          "food|chinese"
        ]
      },
      {
        "_id": 2,
        "firstName": …
Run Code Online (Sandbox Code Playgroud)

mapreduce mongodb aggregation-framework

1
推荐指数
1
解决办法
5481
查看次数

Javascript - underscorejs map根据日期减少groupby

我正在一个项目中使用underscorejs.我需要做不同类型的数组操作,如map,reduce,filter groupby.

我的数据集如下所示:

var data_list = [
     {"insertDate": "2011-12-02T00:00","value": {"paisa":10000}},
    {"insertDate": "2013-03-02T00:00","value": {"paisa":10000}
    },{"insertDate": "2013-03-02T00:00","value": {"paisa":10000}
    },{"insertDate": "2012-12-02T00:00","value": {"paisa":30000}},
  {"insertDate": "2013-04-02T00:00","value": {"paisa":10000},
    },{"insertDate": "2013-04-02T00:00","value": {"paisa":30000}
    },{"insertDate": "2013-03-02T00:00","value": {"paisa":20000}},
  {"insertDate": "2013-04-12T00:00","value": {"paisa":30000}
    },
    {"insertDate": "2012-11-02T00:00","value": {"paisa":10000}}
]
Run Code Online (Sandbox Code Playgroud)

我想根据日,月和年计算数据.对于日计算,我正在进行groupby,然后使用map reduce进行计算.如下所示:

var groupedByDateData = _.groupBy(data_list, "insertDate");
var aggregateByDate = _.map(groupedByDateData, function(invoiceObject, createdat) {
  return { 
     createdat: createdat, 
     val: _.reduce(invoiceObject, function(m,x) { 
       return m + x.value.paisa;
     }, 0) 
  };
});
Run Code Online (Sandbox Code Playgroud)

它适用于基于日期的地图减少,但对于月份和年份计算,我想以与代码可读相同的格式进行.

如何进行映射,减少使用下划线以便我可以获得如下数据:对于每月计算:

[{"createdat": "February 2011", "val": 10000}, 
{"createdat": "March 2013", "val": 40000}, 
{"createdat": "December …
Run Code Online (Sandbox Code Playgroud)

javascript arrays group-by mapreduce underscore.js

1
推荐指数
1
解决办法
4717
查看次数

关于地图中的混洗的查询减少

运行映射器的节点处理如何知道它必须将一些键值输出发送到节点A(运行reducer),一些键值输出到节点B(运行另一个reducer)?是否存在由JobTracker维护的reducer节点列表?如果是,它如何选择节点来运行减速器?

hadoop mapreduce reducers mapper

1
推荐指数
1
解决办法
128
查看次数