大数据开发学习Day39

大数据开发学习Day39 一、Linux1. 统计指定目录下目录总个数ls-l/opt/bigdata/|grep^d|wc-lgrep “^d” 只筛选文件夹类型wc -l 统计行数即目录数量用途盘点业务目录、归档文件夹数量2. HDFS 删除过期分区数据hdfs dfs-rm-r/user/hive/ods/log/dt2026-04*通配符批量删除整月过期分区释放集群存储生产定期清理冷数据必备操作删除前建议先 ls 核对路径避免误删3. 查看端口占用并终止进程netstat-tulpn|grep8080kill-9进程PID查询指定端口被哪个程序占用端口冲突、服务启动失败时排查使用二、SQL表结构dwd_store_order门店订单store_id,order_id,order_amount,pay_timedwd_user_browse用户浏览user_id,goods_id,browse_time,stay_secdwd_vip_info会员信息user_id,vip_level,expire_time,recharge_money1. 统计各门店日均订单与营收SELECTstore_id,COUNT(order_id)/COUNT(DISTINCTdate(pay_time))avg_order_num,SUM(order_amount)/COUNT(DISTINCTdate(pay_time))avg_incomeFROMdwd_store_orderGROUPBYstore_id;先统计门店总订单、总营收除以营业天数得到日均指标用于门店业绩评估、门店效益对比2. 统计商品平均浏览时长与访问人次SELECTgoods_id,ROUND(AVG(stay_sec),1)avg_stay,COUNT(DISTINCTuser_id)visit_userFROMdwd_user_browseWHEREbrowse_time2026-05-01GROUPBYgoods_id;平均停留时长判断商品吸引力去重统计访客数衡量商品热度时间过滤缩小扫描范围提升查询效率3. 分级统计会员充值总额SELECTvip_level,COUNT(user_id)vip_count,SUM(recharge_money)total_rechargeFROMdwd_vip_infoWHEREexpire_timecurrent_dateGROUPBYvip_levelORDERBYtotal_rechargeDESC;只统计在有效期内会员按会员等级分组统计人数与充值金额排序直观看出高等级会员消费贡献三、Pyspark今日重点Structured Streaming 水印处理乱序数据业务场景网络延迟导致数据流时间错乱晚到数据无法正常统计指标失真核心代码frompyspark.sql.functionsimportcol,window# 读取流数据stream_dfspark.readStream.format(kafka).load()data_dfstream_df.select(from_json(col(value).cast(string),schema).alias(data)).select(data.*)# 设置水印允许10秒内晚到数据water_dfdata_df.withWatermark(event_time,10 seconds)# 5分钟滚动窗口统计window_dfwater_df.groupBy(window(col(event_time),5 minute),col(event_type)).count()逐点讲解withWatermark(时间字段, 延迟时长) 定义容忍乱序范围超出容忍时间的数据直接丢弃避免无限堆积状态窗口聚合结合水印保证实时指标准确且释放内存流处理统计 PV、UV、交易指标必备写法实战注意水印字段必须是窗口分组依赖的时间字段延迟时长根据业务网络波动合理设置配套调参# 优化流任务状态过期清理spark.conf.set(spark.sql.streaming.stateTTL.cleanupDelay,30s)四、算法反转字符串defreverseString(s):left,right0,len(s)-1whileleftright:s[left],s[right]s[right],s[left]left1right-1思路讲解双指针头尾交换元素原地反转不额外开辟空间时间效率高数据清洗字段翻转、日志倒序解析常用无额外内存开销大数据批量处理友好