Spark streaming写入delta数据湖问题

问题1 一个batch运行时间过长

检查发现问题出现在merge写文件时间过长,一个batch本来应该是控制在1min。但项目上线到生产环境,检查spark streaming的job,发现数据在merge写入到数据湖时,往往超过1小时。继续排查,发现是一张表往往出现几百个小文件,影响数据写性能,故每天进行小文件合并操作。

  • . 优化小文件问题:

    sql 复制代码
    optimize delta.`dbfs:/your_mount_path/` 
  • 增加分区:

    python 复制代码
    df = spark.read.format('delta').load("abfs:/your_history_path")
    df = df.withColumn('CDC_DATE', df['cdc_timestamp'].cast('date'))
    df.write.partitionBy('CDC_DATE').mode('overwrite').option('overwriteSchema', 'true').format('delta').save("abfs:/your_partitioin_path")
相关推荐
liyunlong-java19 小时前
Elasticsearch 8.5.3 + IK 分词器 + Kibana 8.5.3 一键安装
大数据·elasticsearch·jenkins
真上帝的左手19 小时前
19. 大数据-数据仓库简介
大数据·数据仓库
Volunteer Technology19 小时前
MapReduce使用与原理(一)
大数据·eclipse·mapreduce
Volunteer Technology19 小时前
MapReduce使用与原理 (二)
大数据·mapreduce
敖正炀20 小时前
读写分离与数据库中间件选型
分布式
石逸凡20 小时前
新时代的信息茧房
大数据·人工智能
澈20720 小时前
Git入门指南:核心概念与实用操作
大数据·git·搜索引擎
workflower20 小时前
人工智能全球治理
大数据·人工智能·设计模式·机器人·动态规划
workflower20 小时前
AI灵活高效的智慧用能核心场景
大数据·人工智能·设计模式·机器人·动态规划
1892280486120 小时前
NV301固态MT29F32T08GWLBHD6-QJES:B
大数据·服务器·人工智能·科技·缓存