DateDifference慢的一个问题

@2015-8-26

前言

在处理数据的量达到百万行的时候,就要考虑一些性能问题,通常对于一段程序的速度的容忍是能否秒出。

比如一个小程序,在实际的工作中,数量在100万行,10分钟跑出来,还是能接受的,通常假设一个表有10个字段,那么处理的量级就很容易就上了1000万行,这时如果100分钟跑出来就显得非常慢了,就要考虑能否优化,对比下其他工具[如Python/Java]的效率等,看是否合理。

问题

如何快速计算两列字符串日期的差值?


DateDifference慢的一个问题_1.png


DateDifference慢的一个问题_2.gif

DateDifference慢的一个问题_3.png

在这种方式下,5万行要34秒,那么500万行就要1个小时,太慢了。


DateDifference慢的一个问题_4.png

DateDifference慢的一个问题_5.png

话说有个新函数计算这个东东,待补全

优化

但是这要一个简单的函数的简单使用,并行Map也只有几倍速的提升外,似乎是没有什么好的办法了。

苹果提供的一个思路是自己写一个DateDifference

DateDifference慢的一个问题_6.png

相当于是提前算好所有的算好的有的月份,然后直接引用即可,因为虽然实际中有几百万行,但是删重后才几万行而已。


DateDifference慢的一个问题_7.png

DateDifference慢的一个问题_8.png


DateDifference慢的一个问题_9.png


DateDifference慢的一个问题_10.gif

DateDifference慢的一个问题_11.png


DateDifference慢的一个问题_12.png


DateDifference慢的一个问题_13.png


DateDifference慢的一个问题_14.gif

DateDifference慢的一个问题_15.png

因此,30秒跑完还是很不错的,能实用了。

总结

其实写着写着有点跑题了,如何让不同的100万行时间对求时间间隔又是另一个问题啦。