小编Moh*_*hit的帖子

在python中划分克拉A.

我有以下形式的数据:

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"作为分隔符,但这在我的本地机器或集群上也不起作用.

对于hadoop人:

如果我在本地调试它使用:

cat input.txt | python mapper.py | sort | python reducer.py
Run Code Online (Sandbox Code Playgroud)

这运行得很好,如果我"^A"在本地使用分隔符,但我在群集上运行时遇到错误,并且错误代码也没有太大帮助......

关于如何调试这个的任何建议?
谢谢

python hadoop hadoop-streaming

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

为什么控制台在打印python时有空间

我只是注意到一些奇怪的东西

在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)

谢谢

python

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

实现一个接口java新手

我是java的新手,我正在尝试实现一个接口.

所以主要课程

public interface Matrix{
    //returns number of rows
    int numRows();
    //returns number of columns
    int numColumns();

    int addRows(...);
    ....
}
Run Code Online (Sandbox Code Playgroud)

现在基本上我要解决的是让我们说..我有两个矩阵matrixamatrixb类型Matrix.

我想基本上扩展矩阵行.所以如果matrixa有10行并且matrixb有2行.然后我想回来matrixa+=matrixb

(当然假设列数相同.)

这样做的正确方法是什么?

java

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

在新线程上运行python程序

我有两个程序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()应该在另一个线程上运行?

我无法直接思考这一点.有什么建议?谢谢

python

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

用C++并行读取大文本文件

我有一个大文本文件..我想读取此文件并在其中执行一些操作..

这种操作在每一行上独立发生.所以基本上,我正在寻找一些可以并行执行此功能的功能.

void readFile(string filename){

  //do manipulation

}
Run Code Online (Sandbox Code Playgroud)

操纵可以并行进行.

同意这可以使用hadoop轻松完成,但这是一个过度的解决方案.(它的大文件,但不是那么大,我需要hadoop为此...)

我如何在C++中执行此操作?

c++

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

在java中找到正确的正则表达式模式

所以我要说我有以下类型的字符串数组

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中这样做?谢谢

java

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

在python中计算频率的最简洁方法是什么?

我有以下[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代码..

有一个更好的方法吗?

python counting

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

将自定义参数传递给java中的pig udf函数

这是我想要处理我的数据的方式..来自猪...

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)

现在我如何在猪中实现这一点?

apache-pig

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

如何在R中绘制条形图?

我有一个数据框如下:

 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中绘制它们?

r

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

生成软件包时Cmake错误

好吧,我不知道这是怎么回事?我只是按照我的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)

c++ makefile cmake

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

标签 统计

python ×4

c++ ×2

java ×2

apache-pig ×1

cmake ×1

counting ×1

hadoop ×1

hadoop-streaming ×1

makefile ×1

r ×1