一、Linux查看历史执行过的所有命令把历史命令保存到 cmd_history.txt实时监控系统日志变化historyhistorycmd_history.txttail-f/var/log/messageshistory查看当前用户所有执行过的命令复盘操作、复用命令history 文件名重定向把命令历史保存到文本便于归档、排查操作记录tail -f实时跟踪日志输出线上服务、大数据任务排障必备二、SQL1327. 列出指定时间段内所有的产品订单SELECTp.product_name,SUM(o.unit)ASunitFROMProducts pJOINOrders oONp.product_ido.product_idWHEREDATE_FORMAT(o.order_date,%Y-%m)2020-02GROUPBYp.product_name;DATE_FORMAT按年月截取日期精准筛选指定月份数据多表 JOIN 分组 SUM 聚合统计销量电商按月商品销量统计数仓报表高频场景1303. 求团队人数SELECTemployee_id,COUNT(*)OVER(PARTITIONBYteam_id)ASteam_sizeFROMEmployee;窗口函数PARTITION BY按团队分组统计人数不用自连接、不用子查询一行直接带出同组总数分组内统计指标大数据窗口函数核心用法1294. 不同国家的天气类型SELECTc.country_name,CASEWHENAVG(w.weather_state)15THENHotWHENAVG(w.weather_state)BETWEEN10AND15THENWarmELSEColdENDASweather_typeFROMCountries cJOINWeather wONc.country_idw.country_idWHEREDATE_FORMAT(w.day,%Y-%m)2019-11GROUPBYc.country_name;月份过滤 国家维度关联AVG() 求月平均气温CASE 区间分支打标签自动分类业务类型维度表 事实表关联、聚合后分层标签经典模板三、Pyspark时间月份过滤 分组求和分组聚合后自匹配团队人数多表关联 分组均值 条件标签分类frompyspark.sqlimportSparkSessionfrompyspark.sql.functionsimportcol,sum,avg,date_format,countfrompyspark.sql.windowimportWindowimportpyspark.sql.functionsasF sparkSparkSession.builder \.master(local[*])\.appName(Day26)\.getOrCreate()# 1. 2020-02 产品订单总量productsspark.createDataFrame([(1,Apple),(2,Banana)],[product_id,product_name])ordersspark.createDataFrame([(1,1,2020-02-05,10),(2,1,2020-02-10,20),(3,2,2020-03-01,15)],[order_id,product_id,order_date,unit])products.join(orders,onproduct_id)\.filter(date_format(col(order_date),yyyy-MM)2020-02)\.groupBy(product_name)\.agg(sum(unit).alias(unit))\.show()# 2. 窗口函数求团队人数empspark.createDataFrame([(1,101),(2,101),(3,102),(4,102)],[employee_id,team_id])winWindow.partitionBy(team_id)emp.withColumn(team_size,count(employee_id).over(win)).show()spark.stop()date_format格式化日期和SQL DATE_FORMAT对齐窗口函数 Window.partitionBy 实现按团队分组计数聚合、关联、条件过滤完全对标当日 SQL 业务逻辑四、算法35. 搜索插入位置给定有序数组和目标值找到目标索引不存在则返回插入位置defsearchInsert(nums,target):left,right0,len(nums)whileleftright:mid(leftright)//2ifnums[mid]target:returnmidelifnums[mid]target:leftmid1else:rightmidreturnleft二分查找模板时间 O (logn)找不到目标直接返回插入位置左边界二分经典写法