标签: mapreduce

Hadoop Streaming Python 多输入文件单映射器

我有一个映射器。

for line in sys.stdin:
    #if line is from file1
    #process it based on some_arbitrary_logic
    #emit k,v

    #if line is from file2
    #process it based on another_arbitrary_logic
    #emit k, v
Run Code Online (Sandbox Code Playgroud)

我需要通过 hadoop 流 API-input file1和另一个-input file2.

我如何实现这一目标?我怎么知道STDINhadoop流给我的哪一行属于哪个文件?

更新

File1

Fruit, Vendor, Cost

Oranges, FreshOrangesCompany, 50
Apples, FreshAppleCompany, 100

File2

Vendor, Location, NumberOfOffices

FreshAppleCompany, NewZealand, 45
FreshOrangeCompany, FijiIslands, 100
Run Code Online (Sandbox Code Playgroud)

我需要做的是打印出他们卖橙子的办公室数量。

Oranges 100.

所以这两个文件都需要到INPUT映射器。

python hadoop mapreduce cloudera hadoop-streaming

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

将 BufferedImage 或 ImageIO 转换为 ByteBuffer

我通过 BufferedImage 读取图像获取其 RGB 值,现在为了将图像写回,而不是使用 ImageIO,我必须在 HDFS(Hadoop 分布式文件系统)中写入图像。现在我只有一种选择,那就是使用 FSDataOutputStream 进行写入。那么是否可以将缓冲图像中的 RGB 值转换为 Java 中的 ByteBuffer 类?请帮助

java hadoop mapreduce

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

MongoDB 嵌套 $group 和 sum

我是 MongoDB 的新手,所以如果我错过了文档中的某些内容,请原谅我。我有一个这样的收藏

[date: "2015-12-01", status: "resolved", parentId: 1]
[date: "2015-12-01", status: "resolved", parentId: 2]
[date: "2015-12-01", status: "resolved", parentId: 2]
[date: "2015-12-01", status: "waiting", parentId: 2]
[date: "2015-12-02", status: "resolved", parentId: 1]
[date: "2015-12-02", status: "waiting", parentId: 2]
[date: "2015-12-02", status: "waiting", parentId: 2]
[date: "2015-12-03", status: "resolved", parentId: 1]
Run Code Online (Sandbox Code Playgroud)

我期望对按以下分组的输出求和

日期 -> 父 ID -> 状态

所以那就是

{
    "2015-12-01": {
        "1": {
            "resolved": 1
        },
        "2": {
            "resolved": 2,
            "waiting": 1
        }
    }
    "2015-12-02": {
        "1": {
            "resolved": …
Run Code Online (Sandbox Code Playgroud)

mapreduce mongodb mongodb-query aggregation-framework

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

Java Hadoop MapReduce 多值

我正在尝试做一个电影推荐系统并且一直在关注这个网站。链接这里

def count_ratings_users_freq(self, user_id, values):
"""
For each user, emit a row containing their "postings"
(item,rating pairs)
Also emit user rating sum and count for use later steps.
output:
userid, number of movie rated by user, rating number count, (movieid, movie rating)

17    1,3,(70,3)
35    1,1,(21,1)
49    3,7,(19,2 21,1 70,4)
87    2,3,(19,1 21,2)
98    1,2,(19,2)
"""
item_count = 0
item_sum = 0
final = []
for item_id, rating in values:
    item_count += 1
    item_sum += rating
    final.append((item_id, rating))

yield …
Run Code Online (Sandbox Code Playgroud)

java hadoop mapreduce

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

NoClassDefFoundError: org/apache/commons/lang/StringUtils

我正在编写 map reduce 程序来比较两个文件。当我运行该程序时,它会引发以下异常。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
at org.apache.hadoop.metrics2.lib.MutableMetricsFactory.getName(MutableMetricsFactory.java:119)
Run Code Online (Sandbox Code Playgroud)

我的 pom 文件。

 <dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>0.23.1</version>
</dependency>
<dependency>
    <artifactId>guava</artifactId>
    <groupId>com.google.guava</groupId>
    <type>jar</type>
    <version>15.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
 <dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-lang3</artifactId>
 <version>3.3</version>
  </dependency>
 <dependency>
  <groupId>commons-logging</groupId>
 <artifactId>commons-logging</artifactId>
 <version>1.1.1</version>
 </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

java hadoop mapreduce apache-stringutils

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

Spark(pyspark)如何仅在3元素元组的2个元素上reduceByKey

我有这样的地图结果

[('成功','',1),('成功','',1),('错误','something_random',1),('错误','something_random',1),('错误','something_random',1)]

是否有一种方法可以通过键减少最终结果:

[('成功',2),('错误',3)]

然后以某种方式在文件上打印所有错误?

tuples mapreduce apache-spark pyspark

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

Num Off开关容器在Yarn资源管理器UI中是什么意思?

我有一个ETL工作,占用大量CPU和内存,并且运行了很长时间。我在调试时观察到的第一件事如下(来自资源管理器GUI上的作业)

  • Num Node本地容器(满意)= 6
  • Num Rack本地容器(满意)= 00
  • Num Off开关容器(满意)= 11367

我们只有两个机架。我需要回答以下三个问题的帮助

  1. Num Off开关容器是什么意思?
  2. 如何识别这些“关闭开关”容器以及它们运行在哪个节点上?
  3. 关闭开关容器是否会导致作业处理时间变慢?

hadoop mapreduce hadoop-yarn hortonworks-data-platform

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

python从单词中提取元音

我正在阅读一串单词并尝试检索其中的所有元音,但没有取得多大成功。所以如果我有这个:你好,这是一个测试,这是。我想返回这样的东西:

:|欧| 1 :|

:|我| 1 :|

:|我| 1 :|

:|a | 1 :|

:|我| 1 :|

:|我| 1 :|

这是我的代码的最新版本,它只是打印单词,我知道我需要遍历每个单词,但无法弄清楚如何不让它变成无限循环。

import sys
import re
import string

line = sys.stdin.readline()
vowels = ['a', 'e', 'i', 'o', 'u']
line = line.lower()
line = line.replace(',', ' ').replace(';',' ').replace('”','').replace('?', .').replace('!','.')
word = line.split()

print(word)
line = sys.stdin.readline()
Run Code Online (Sandbox Code Playgroud)

python mapreduce

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

Java 8 Stream并在执行缩减时维护索引

这些天我一直在试图弄清楚如何使用Java 8流API执行减少并同时维护索引.这是一个例子:

我有以下字符串:

String charSequence = "kjsfjsfajdsfjsaaaaaasssddfddddbbbdddaaa";
Run Code Online (Sandbox Code Playgroud)

我想通过Stream操作返回三元组 (I, N, C)

哪里:

  • C 是一个角色
  • N 是一些事件 - 应该是最大的
  • I 是第一次出现的字符串的索引(如果有多个字符串,则为第一个)

例子:

  • "ddaaaacccjcccccjjj" 回报 (10, 5, c)
  • "ddaaacccaaa"的第一次出现"aaa"2这样的结果将是: (2, 3, a)

一般来说,如果我可以返回所有具有长度为3的子串的字符,那将是很好的,这样结果就是两个三元组(I, N, C) C.但这是可选的.如果我得到第一个三重权利,我可以自己前进.

更新:

我不是在寻找替代解决方案.我可以用另一个API很好地实现它.我试图理解为什么维护索引是困难的,或者为什么不能这样做,如果是这样的话.反对的好论据很好.

java lambda mapreduce java-8 java-stream

-3
推荐指数
1
解决办法
1023
查看次数

计算没有LOOPS的单词

我有一个关于Ruby的问题:

给定一个输入字符串,我需要返回一个哈希,其键是字符串中的单词,其值是每个单词出现的次数.重要提示:我不能使用for循环.

示例:"今天是一天,一个日出"输出:{'今天'=> 1,'是'=> 1,'a'=> 2,'天'=> 1,'日出'=> 1}

你能帮助我吗?

ruby hash words mapreduce count

-4
推荐指数
2
解决办法
8205
查看次数