小编Kev*_*hah的帖子

运行awk命令时打开文件太多错误

我试图根据模式拆分一个大文件.我正在使用awk命令.创建一定数量的文件后,它会出错:打开的文件太多.

命令是:

awk '/pattern here/{i++}{print > "file"i}' /input file
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何关闭这些文件吗?我试过跟随,但它给出了错误.

    awk '/pattern here/{i++}{print > "file"i}' /input file | close("file"i)
Run Code Online (Sandbox Code Playgroud)

linux shell awk

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

用于将字符串转换为long的java.lang.NumberFormatException

我试图将一个字符串转换为long,它会抛出NumberFormatException.我不认为它超出了范围long.

这是要转换的代码,其中count_strng是我想要转换为long的String.trim()功能没有任何区别.

long sum_link = Long.parseLong(count_strng.trim());
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪.

java.lang.NumberFormatException: For input string: "0.003846153846153846"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:441)
at java.lang.Long.parseLong(Long.java:483)
Run Code Online (Sandbox Code Playgroud)

谁知道这里的确切问题是什么?

java string numberformatexception

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

mapreduce hadoop中输入分割数与映射器数之间的关系

我是hadoop的新手和地图缩小模型并试图让这些概念正确.

我首先想要得到输入拆分的概念和映射器的数量是正确的.

我正在运行mapreduce wordcount程序,以下是我的问题.

1)如何确定输入分割?我在同一个集群上运行相同的程序,有两个不同大小的输入

file 1 : size 48mb. => i got number of splits:1 in log.
file 2: size 126mb => number of splits : 1 
file 2 : size 126mb ( executed in eclipse IDE) => number of splits: 4
Run Code Online (Sandbox Code Playgroud)

不应该是126 MB文件的分割数等于2?因为我已经读过块大小为64 MB.所以它必须创建2个分裂.

2)如何确定地图制作者的数量?我试图通过以下方式获得映射器的数量来理解mapreduce的工作流程.

conf.get("mapred.map.tasks")
Run Code Online (Sandbox Code Playgroud)

它每次返回2.

3)分割数和映射器数之间是否有任何关系?

4)做上面的事情取决于集群?对于伪分布式模式和其他集群是否相同或不同?

谢谢.

hadoop mapreduce

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

标签 统计

awk ×1

hadoop ×1

java ×1

linux ×1

mapreduce ×1

numberformatexception ×1

shell ×1

string ×1