Spark SQL或Hive开发调试小技巧
- 在本地开发机装本地模拟环境,或者能远程调试,可以参考Spark如何在生产环境调试
- 输出dataframe日志,最好有一个开关来控制,正式上线时,把开关关了来提升速度
if (isDebug) {
dataframeDF.show(10)
}
- dataframe的输出,有时看得不是很清楚,可以生成临时表来记录中间过程,方便对中间过程进行查看 insertHive(resultDF, “dataframe_temp”)
- 如果是运行的数据比较大,调试起来要等,可以对dataframe进行限定条数或筛选 dataframe.limit(1000) dataframe.filter(” id = ‘ewgwgs’ “)
- 对复杂的sql,一步到位写起来爽,出问题了不知是哪一步出问题,可以分解出几个简单sql,每一步都有输出,对照结果方便找出问题。
- 对复杂计算的,写的代码觉得似是而非,可以先整理一个样例,手动写计算过程,然后用代码对照这些过程来一步步实现。