如果行数为100000,则Spark SQL性能太慢

时间:2017-11-06 08:34:46

标签: performance csv apache-spark rows

我正在使用很多行表测试Spark性能。 我做的很简单 准备csv文件,该文件有许多行,只有2个数据记录。 例如,csv文件如下所示:

col000001,col000002,,,,,,,col100000
dtA000001,dtA000002,,,,,,,,dtA100000
dtB000001,dtB000002,,,,,,,,dtB100000

dfdata100000 = sqlContext.read.csv('../datasets/100000c.csv', header='true')
dfdata100000.registerTempTable("tbl100000")
result = sqlContext.sql("select col000001,ol100000 from tbl100000")

然后按show(1)

获得1行
%%time
result.show(1)

文件大小如下(非常小)。 文件名显示行数:

$ du -m *c.csv
3   100000c.csv
1   10000c.csv
1   1000c.csv
1   100c.csv
1   20479c.csv
2   40000c.csv
2   60000c.csv
3   80000c.csv

结果如下:

enter image description here

如您所见,执行时间呈指数级增长。

示例结果:

+---------+---------+
|col000001|col100000|
+---------+---------+
|dtA000001|dtA100000|
+---------+---------+
only showing top 1 row

CPU times: user 218 ms, sys: 509 ms, total: 727 ms
Wall time: 53min 22s
问题1:这是否可以接受?为什么执行时间呈指数级增长?

问题2:还有其他方法可以做得更快吗?

0 个答案:

没有答案