使用并行AWK-有人听说过吗?

问题描述 投票:1回答:2

有这样的东西吗?任何人都可以对此进行澄清吗?我一直在使用AWK执行简单的任务,例如打印列和合并大型数据文件,但不是用于计算?我在考虑是否可以使用计算机或网络中的所有节点和CPU并行运行AWK。但是如何?使用并行AWK的主要目的是什么?

谢谢您的输入。

发布问题后,我发现Parallel AWK确实存在。您可以找到更多有关它的信息。这是链接http://www.parallel-awk.org/

awk
2个回答
2
投票

并行awk实现的问题在于,语义明确假定操作是按顺序处理的。例如:

awk '{print NR, $0}'

提供与cat -n类似的输出。并行处理此问题的困难在于,NR是已处理的行总数,而不仅仅是给定文件(FNR

中的行数

此外,还有一些更复杂的技巧,涉及诸如getline之类的命令,这些命令无法并行化(例如,可以将脚本短路以模拟gnu nextfile扩展名]


0
投票

我在网上看到了许多使用“ cat filename”通过awk并行管道的示例,但是我假设使用NR / FNR这样的awk排序不能像下面这样并行化?

awk'NR == FNR {a [$ 1]; next} $ 2 in {print}'$ PWD / geno.8.2.txt $ PWD / geno.14.1.gen> test.gentemp

我可以通过“ parallel --shellquote”将其转义以转引号,但是我认为它是不可并行化的?我们还在群集上使用了很多Spark,但对于这种排序而言,Spark的速度并不快。也许我们最好使用Hive或Impala?

Tx!

© www.soinside.com 2019 - 2024. All rights reserved.