- 尽可能的过滤原始数据
在上次实践中,我们使用
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)
- spark.default.parallelism设置
这里有一篇很好的优化指南。在standalone模式下,情况要简单一些,这个值相当于每个核分配2~3个线程的所有线程总和。修改在conf/spark-defaults.conf中。
网友评论