我想知道在采样RDD / DF时,Spark的运行时间与完整RDD / DF的运行时间相比。我不知道它是否有所作为,但我目前正在使用Java + Spark 1.5.1 + Hadoop 2.6。
Mozilla Firefox
我希望采样最快接近~90%。但对我来说,看起来火花穿过整个DF或进行计数,这基本上与完整的DF选择几乎相同。生成样本后,它将执行select。
我对这个假设是否正确,或者是以错误的方式使用的采样是什么导致我最终选择了两个选择所需的运行时间?
答案 0 :(得分:1)
我希望采样最快接近~90%。
嗯,这些期望不切实际的原因有几个:
sample
或takeSample
方法时发生的情况
SELECT *
是一个相对轻量级的操作。根据您有时间处理单个分区的资源量可以忽略不计coalesce
或repartition
,最终可能会出现大量几乎空的分区。这意味着资源使用次优。采样至少有两个重要的好处:
如果你想从采样中获得最多,那么采样,合并和缓存是有意义的。