Spark性能调优

  1. 尽可能的过滤原始数据
    在上次实践中,我们使用
spark.read.jdbc(mysqlHelper.DB_URL_R,"t_rfid_card",
    Array("org_id="+ORG_ID),
    mysqlHelper.PROPERTIES)

过滤并读取了数据库。如果我们要多加几个过滤条件,要小心一个陷阱,Array[String]参数并不是用来叠加过滤条件的, 在文档中说明了这一点:


所以如果是要叠加过滤条件,只能在一个字符串内拼接,像这样:

spark.read.jdbc(mysqlHelper.DB_URL_R, "t_medical_waste",
    Array("org_id = " + ORG_ID+" AND YEAR(rec_ts) = "+YEAR), 
    mysqlHelper.PROPERTIES)
  1. spark.default.parallelism设置
    这里有一篇很好的优化指南。在standalone模式下,情况要简单一些,这个值相当于每个核分配2~3个线程的所有线程总和。修改在conf/spark-defaults.conf中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容