37101000ssd48800^A1420asd938987^A2011-09-10^A18:47:50.000^A99.00^A1^A0^A
37101000sd48801^A44557asd03082^A2011-09-06^A13:24:58.000^A42.01^A1^A0^A
Run Code Online (Sandbox Code Playgroud)
所以首先我从字面上理解并尝试:
line = line.split("^A")
Run Code Online (Sandbox Code Playgroud)
并且
line = line.split("\\u001")
Run Code Online (Sandbox Code Playgroud)
如果我这样做,第一种方法适用于我的本地机器:
cat input.txt | python mapper.py
Run Code Online (Sandbox Code Playgroud)
它在本地运行正常(input.txt是上面的数据),但在hadoop流集群上失败.
有人告诉我,我应该使用它"\\u001"作为分隔符,但这在我的本地机器或集群上也不起作用.
如果我在本地调试它使用:
cat input.txt | python mapper.py | sort | python reducer.py
Run Code Online (Sandbox Code Playgroud)
这运行得很好,如果我"^A"在本地使用分隔符,但我在群集上运行时遇到错误,并且错误代码也没有太大帮助......
关于如何调试这个的任何建议?
谢谢
我只是注意到一些奇怪的东西
在python中,如果我这样做
>>> k = 1
>>> j = 2
>>> print k,",",j
1 , 2 # prints this
Run Code Online (Sandbox Code Playgroud)
我希望它会是:
1,2
Run Code Online (Sandbox Code Playgroud)
为什么这两者之间有空间,而
>>> print str(k) + "," + str(j)
1,2
Run Code Online (Sandbox Code Playgroud)
谢谢
我是java的新手,我正在尝试实现一个接口.
所以主要课程
public interface Matrix{
//returns number of rows
int numRows();
//returns number of columns
int numColumns();
int addRows(...);
....
}
Run Code Online (Sandbox Code Playgroud)
现在基本上我要解决的是让我们说..我有两个矩阵matrixa和matrixb类型Matrix.
我想基本上扩展矩阵行.所以如果matrixa有10行并且matrixb有2行.然后我想回来matrixa+=matrixb
(当然假设列数相同.)
这样做的正确方法是什么?
我有两个程序program1.py就像命令行界面,它从用户program2.py获取命令,该程序根据命令运行相关程序.
程序1还有一个quit_program()模块在我们简单的宇宙中..让我说我只有一个命令而只有一个程序所以说让...
program1.py
def main():
while True:
try:
command = raw_input('> ')
if command == "quit" :
return
if command == '':
continue
except KeyboardInterrupt:
exit()
parseCommand(command)
Run Code Online (Sandbox Code Playgroud)
然后我有:
if commmand == "hi":
say_hi()
Run Code Online (Sandbox Code Playgroud)
现在program2有了
def say_hi():
#do something..
Run Code Online (Sandbox Code Playgroud)
现在可能有两种情况...... say_hi()完成,在这种情况下没有问题......但我想要的是,如果用户输入一个命令(比如说:结束),那么这个say_hi()会在两者之间终止.
但我当前的实现是非常顺序的...我的意思是我不能在我的终端上输入任何东西,直到执行完成.. Somethng告诉我say_hi()应该在另一个线程上运行?
我无法直接思考这一点.有什么建议?谢谢
我有一个大文本文件..我想读取此文件并在其中执行一些操作..
这种操作在每一行上独立发生.所以基本上,我正在寻找一些可以并行执行此功能的功能.
void readFile(string filename){
//do manipulation
}
Run Code Online (Sandbox Code Playgroud)
操纵可以并行进行.
同意这可以使用hadoop轻松完成,但这是一个过度的解决方案.(它的大文件,但不是那么大,我需要hadoop为此...)
我如何在C++中执行此操作?
所以我要说我有以下类型的字符串数组
something **foo**garblesomething somethingelse
something **foobar**blahblah somethingelse
and so on
Run Code Online (Sandbox Code Playgroud)
所以基本上数据是三元组
现在,在字符串的中间部分
注意关键词"foo"和"foobar"
我想做的是:
if "foo" in string:
return 1
else if "foobar" in string:
return 2
else -1
Run Code Online (Sandbox Code Playgroud)
我怎么在java中这样做?谢谢
我有以下[0.1,0.2,1,5,100]等数据......我想要做的是计算之间的项目数
1-10
11-20
21-30
... and so on...
Run Code Online (Sandbox Code Playgroud)
现在,我有一个非常凌乱的代码..
我所做的就是映射
1-10 :=> 0
11-20:=> 1
..and on..
Run Code Online (Sandbox Code Playgroud)
所以我定义了桶0,其中桶0的范围是1-10,桶1的范围是11-20,依此类推.
代码是:
for ele in data:
bucket_id = get_bucket_id(ele)
freq_dict[bucket_id] +=1
Run Code Online (Sandbox Code Playgroud)
get_bucket_id是一个很大的if else代码..
有一个更好的方法吗?
这是我想要处理我的数据的方式..来自猪...
A = Load 'data' ...
B = FOREACH A GENERATE my.udfs.extract(*);
or
B = FOREACH A GENERATE my.udfs.extract('flag');
Run Code Online (Sandbox Code Playgroud)
所以基本上提取要么没有参数要么参与...'标志'
在我的udf方面......
@Override
public DataBag exec(Tuple input) throws IOException {
//if flag == true
//do this
//else
// do that
}
Run Code Online (Sandbox Code Playgroud)
现在我如何在猪中实现这一点?
我有一个数据框如下:
reason_code num_stayed num_disconnected
1 60 2
2 113 3
3 212 2
4 451 6
.....
Run Code Online (Sandbox Code Playgroud)
我基本上想绘制条形图来比较每个reason_code,剩下多少和剩下多少?我想并排展示这些.那是在同一个情节中.每个原因代码有两个条.一个酒吧(说)红色另一个绿色.
如何在R中绘制它们?
好吧,我不知道这是怎么回事?我只是按照我的Macbook上的一些说明(显然是针对ubuntu OS)进行操作。
一切顺利,直到最后一步。
当我这样做时make,我看到以下错误:
Linking CXX executable ../../bin/test-wordcount
ld: warning: path '/usr/local/lib/libprotobuf.dylib' following -L not a directory
ld: warning: path '/usr/local/lib/libzmq.dylib' following -L not a directory
Undefined symbols for architecture x86_64:
"_del_curterm", referenced from:
terminalHasColors(int) in libLLVMSupport.a(Process.o)
"_set_curterm", referenced from:
terminalHasColors(int) in libLLVMSupport.a(Process.o)
"_setupterm", referenced from:
terminalHasColors(int) in libLLVMSupport.a(Process.o)
"_tigetnum", referenced from:
terminalHasColors(int) in libLLVMSupport.a(Process.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** …Run Code Online (Sandbox Code Playgroud)