统计踩坑日记(三)
细心决定一切
程序员的下班时间是由他对当前手里项目有没有想法决定的,上周对三张表进行统计工作,就被细节问题折磨的欲仙欲死
1.写代码的时候可以随心所欲点,但涉及到指标的生成、统计时就需要严阵以待。每个指标都建议大写,因为不是每个数据库都不区分大小写,比如kudu,他就不支持小写字母来对应指标名,所以一开始就养成指标名大写的习惯总是不会错的。如果不是在这上面耽误了几百分钟,我也不会在意。
2.每条代码都事先写好所有的指标名的集合,可以省下繁复的drop(“column_name”)工作,
def select(df:dataSet[Row]):Datafrme = {
df.select("NAME","SEX")
}
3.写hive和kudu的时候最好关注一下其他前辈是怎么写的,尽量和别人保持一致,不搞特殊化
4.写表的时候有档案表,职能表之分,档案表理论上可以做一切分析,但档案表里存的数据量大,所以加载档案表时间会耗时太多,有这时间不如问领导有没有统计好的表拿来直接用。没办法再想着join档案表。
5.写表的时候hive有insert方法和insert overwrite方法,有些博客对insert overwrite方法介绍的不是很清晰,insert overwrite方法是匹配完全一致的重复数据只保留最后一次写进去的那一个。所以要视情况用。merge方法不熟悉,开发中最好选择熟悉的能够掌握它每一步运行的方法