私のテストによると、Spark-Shell(Scalaに基づく)が他のツール(GREP、SED、AWK、PERL、WC)よりもはるかに高速であることを確認できます。これは、23782409行のファイルで実行したテストの結果です。
time grep -c $ my_file.txt;
実際の0m44.96sユーザー0m41.59ssys0m3.09s
time wc -l my_file.txt;
実際の0m37.57sユーザー0m33.48ssys0m3.97s
time sed -n '$=' my_file.txt;
実際の0m38.22sユーザー0m28.05ssys0m10.14s
time perl -ne 'END { $_=$.;if(!/^[0-9]+$/){$_=0;};print "$_" }' my_file.txt
;
実際の0m23.38sユーザー0m20.19ssys0m3.11s
time awk 'END { print NR }' my_file.txt;
実際の0m19.90sユーザー0m16.76ssys0m3.12s
spark-shell
import org.joda.time._
val t_start = DateTime.now()
sc.textFile("file://my_file.txt").count()
val t_end = DateTime.now()
new Period(t_start, t_end).toStandardSeconds()
res1:org.joda.time.Seconds = PT15S