1. 多次filter操作后,RDD中partition的数据量会越来越少,当很小接近于空的时候,会损耗性能
解决: 利用coalesce 或 repartition(强制shuffle)减少RDD中partition数量
2. 海量记录getConn,每个partition里的每条记录get时都需要新建连接不必要,只需每个partition取一个connection
解决: PartitionMap
3. 数据倾斜
解决: key取reverse或aggregation
4. worker倾斜
解决: spark.speculation=true kill掉straggle node
5. 序列化 collect? serialization
解决: collect 实际上是一个添加所有元素到数组的步骤超慢;ObjectOutputStream 是JDK自带的也是超慢;kyro seriralization