小编Mik*_*e B的帖子

Java Hadoop Mapper如何发送多个值

我的映射器需要发送以下元组:

<custID,prodID,rate>
Run Code Online (Sandbox Code Playgroud)

并且我希望将减少器作为密钥发送到reducer,并将prodID和速率作为值一起发送,因为它们是减少阶段所需的.这是最好的方法吗?

public void map(Object key, Text value, Context context) 
        throws IOException, InterruptedException {

    String[] col = value.toString().split(",");
    custID.set(col[0]);
    data.set(col[1] + "," + col[2]);
    context.write(custID, data);
}

public void reduce(Text key, Iterable<Text> values, Context context)
        throws IOException, InterruptedException {

    for (Text val : values) {
        String[] temp = val.toString().split(",");
        Text rate = new Text(temp[1]);
        result.set(rate);
        context.write(key, result);
    }
}
Run Code Online (Sandbox Code Playgroud)

java hadoop mapper

9
推荐指数
2
解决办法
8291
查看次数

将字符串转换为文本(Java Hadoop)

我有以下问题:

我想分割从文件中获取的Text值.

值格式为"12,23"

我想取变量a = 12中的第一个值和变量b = 23中的第二个值.

我使用String.split(","); 要做到这一点.问题是我想在Text变量中分配这些值.

我尝试了以下内容,但它不起作用

Text text=(Text) a; 
Run Code Online (Sandbox Code Playgroud)

java string text hadoop

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

ANTLR4:TokenStreamRewriter输出没有正确的格式(删除空格)

我使用Antlr4和java7语法()来修改输入Java源文件.更具体地说,我使用TokenStreamRewriter类来修改一些令牌.以下代码是一个示例,显示如何修改令牌:

public class TestListener extends JavaBaseListener {    
   private TokenStreamRewriter rewriter;
   rewriter = new TokenStreamRewriter(tokenStream);
   rewriter.replace(ctx.getStart(), ctx.getStop(), "someText");
}
Run Code Online (Sandbox Code Playgroud)

当我打印更改的源代码时,将删除空格和制表符,新的源文件的格式如下所示:

importjava.util.ArrayList; publicclassMain {publicstaticvoidmain(字串[] args {MyTimertimer = newMyTimer();}}

我正在使用extractor.getText()将其打印回来.

这是使用语法的问题还是我应该使用TokenStreamRewriter类中的其他方法?

parsing antlr token lexer antlr4

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

如何从python函数返回两个变量并访问其值而不调用两次?

假设我具有以下功能:

def f():
   return [1,2,3], [4,5,6]
Run Code Online (Sandbox Code Playgroud)

我可以成功调用此函数,如下所示:

a,b = f() 
print(a,b) #prints [1, 2, 3] [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

但是,假设我只想访问第一个列表的第一项(1)和第二个列表的第一项(4)。为此,我成功地将其命名如下:

a,b = f()[0][0], f()[1][0]
print(a,b) #prints 1 4
Run Code Online (Sandbox Code Playgroud)

我不控制函数,f()因为它是在库中编写的。

在Python中是否可以执行最后的操作,而无需两次调用该函数并且不使用返回的a和b值?

python

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

来自heapq python的pop max值,Python中是否有最大堆?

可能重复:
我在Python中使用什么来实现最大堆实现?

我试图以某种方式实现python的heapq但是对于max-heap.一个解决方案是使用(-1)和多个队列号,但这对我没有帮助,因为我需要将URL存储在堆中.所以我想要一个max heapq,我可以弹出最大的值.

python min-heap max-heap

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

什么是递归DTD?如果可能的话

我试图找到一个递归的DTD和一个有效的XML数据文件.现有验证器是否能够验证递归DTD?我希望能够在该XML文件之后执行XQueries.

xml dtd xquery 3nf

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

计算密钥的一部分出现在字典python中的次数

我有以下字典,我想计算键出现的次数,字典是非常大的.

a = { (1,2):3, (1,3):5, (2,1):6 }
Run Code Online (Sandbox Code Playgroud)

我想要这个结果

1: 3 times
2: 2 times
3: 1 time
Run Code Online (Sandbox Code Playgroud)

python dictionary tuples key list

0
推荐指数
2
解决办法
1057
查看次数

如何找到行和单词的总和

我有三个文件,每个文件包含一行,有两列,如下所示:

FILE1.TXT

3 5

FILE2.TXT

2 6

file3.txt

6 3

我想将它们组合在一个文件中,该文件对每个第一列和第二列进行求和,如下所示:

finalfile.txt

11 14

我需要用Unix命令来做到这一点

unix linux bash

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

标签 统计

python ×3

hadoop ×2

java ×2

3nf ×1

antlr ×1

antlr4 ×1

bash ×1

dictionary ×1

dtd ×1

key ×1

lexer ×1

linux ×1

list ×1

mapper ×1

max-heap ×1

min-heap ×1

parsing ×1

string ×1

text ×1

token ×1

tuples ×1

unix ×1

xml ×1

xquery ×1