package cn.ac.iie.logimport org.apache.spark.sql.{SaveMode, SparkSession}/*** 使用Spark完成我们的数据清洗操作*/
object SparkStatCleanJob {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("SparkStatCleanJob").master("local[2]").getOrCreate()val acessRDD = spark.sparkContext.textFile("file:///E:/test/output/part-00000")// acessRDD.take(10).foreach(println)// RDD => DFval accessDF = spark.createDataFrame(acessRDD.map(x => AccessConvertUtil.parseLog(x)), AccessConvertUtil.struct)// accessDF.printSchema()// accessDF.show(false)accessDF.coalesce(1).write.format("parquet").mode(SaveMode.Overwrite).partitionBy("day").save("file:///E:/test/clean")spark.stop()}}

有时我们要将DataFrame保存到文件系统中,并且按照day字段进行partitionBy,往往使用accessDF.write.format("parquet").mode(SaveMode.Overwrite).partitionBy("day").save("file:///E:/test/clean")这种方式,
这句话:将DataFrame数据以parquet文件格式写入file:///E:/test/clean文件系统中,并且按照day进行partition,同时如果文件夹存在则进行覆盖。
但是有时候,输出的结果中day文件夹下的小文件太多了,非常影响性能。因此使用coalesce(1)来将小文件文件输出到一个文件中。之前在一个day下会有多个文件,使用accessDF.coalesce(1).write.format("parquet").mode(SaveMode.Overwrite).partitionBy("day").save("file:///E:/test/clean")方式之后,一个day下就仅有一个文件了。

SparkSQL 控制文件输出的大小相关推荐

  1. NLog日志框架-输出文件数量与大小控制

    目录 概述 一.NLog使用说明 二.文件输出控制配置 1.规则说明 2.演示案例 总结 概述 Nlog是一个免费开源的.NET日志框架,拥有丰富的日志路由(XML配置表)和强大的管理能力.NLog便 ...

  2. 文件上传下载-修改文件上传大小

    #上传时出现如下异常: 上传文件的大小超出默认配置 默认10M nested exception is java.lang.IllegalStateException: org.apache.tomc ...

  3. 011、控制文件作用与管理

    控制文件作用与管理 1.控制文件位置与大小 2.控制文件的内容 3.大关系段 4.postgresql.conf中的配置信息 5.write-ahead logging以及checkpoint的动态信 ...

  4. SparkSql 控制输出文件数量且大小均匀(distribute by rand())

    @羲凡--只为了更好的活着 SparkSql 控制输出文件数量且大小均匀(distribute by rand()) Q:Spark如何控制文件你输出数量? A:这个简单,用 coalesce或者re ...

  5. 将文件中的内容在控制台上输出

    Q: 在C:盘根目录下创建纯文本文件 test.txt,并键入下列内容: 呦呦鹿鸣,食野之蒿. 今夕何夕,见此良人. 桃之夭夭,灼灼其华. 如月之恒,如日之升. 巧笑倩兮,美目盼兮. 琴瑟在御,莫不静 ...

  6. 还原oracle控制文件位置,oracle 11.2 控制文件还原

    ****************************************** 1.控制文件备份分类 ****************************************** 通常分 ...

  7. 【SparkSQL小文件的处理方式】

    SparkSQL小文件的处理方式(选第三种方式即可解决) 自适应执行 社区在Spark2.3版本之后的AdaptiveExecute特性之中就能很好的解决Partition个数过多导致小文件过多的问题 ...

  8. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件

    天萃荷净 oracle数据库无法启动报错ORA-00218故障,通过重建控制文件解决文件损坏问题 遇到一个案例在数据库启动的时候报ORA-00218错误,而这个故障的引起原因是因为重建控制文件的时候, ...

  9. oracle 控制文件在哪里设置_从Oracle到PostgreSQL:最全控制文件

    原文: 从Oracle到PostgreSQL:最全控制文件(上) https://www.enmotech.com/web/detail/1/770/1.html 从Oracle到PostgreSQL ...

最新文章

  1. Chapter 0: 引论
  2. 转-eclipse管理多个workspace
  3. 手把手配置Linux透明防火墙
  4. 范围管理6个过程及相关重点
  5. ie的严苛,firefox的宽容
  6. Fedora17下Firefox安装flashplayer
  7. 1. BeeGo 介绍与项目的创建,启动
  8. Windows下SVN备份脚本
  9. 弹性系数和线径的计算公式_弹簧弹力计算公式详解
  10. 【其他工具】亲戚关系计算器
  11. 科学计算机化弧度,弧度与角度换算工具
  12. 常见网络爬虫反爬机制与反爬机制的解决方案
  13. MATLAB中subs函数
  14. 伪造邮件***,看我如何给网易邮箱APP发送垃圾邮件【二】
  15. 百度地图设置显示中心点
  16. EDID:识别和解决常见问题指南
  17. dos命令实现循环求和
  18. QNX----第3章 进程间通信(1部分)
  19. html去图片平铺效果,css如何把图片平铺?
  20. Astgo(阿斯特)官方提供的使用技巧大全

热门文章

  1. 企业面试题库_数据库部分
  2. php输出下划线,使用php GD库输出带下划线文本的图像
  3. python基础数据类型一(元祖)
  4. Graphviz安装配置及入门(windows安装亲测)
  5. 通过管道传输快速将MySQL的数据导入Redis(自己做过测试)
  6. go语言连接redis(已测试)
  7. xhprof windows下安装和使用(windows版本)
  8. wordpress PHP合并js,如何在WordPress中添加外部JavaScript
  9. 二手轻型载货车报价图片_别买贵了,老陈带你走进二手iPhone的大本营:深圳飞扬市场...
  10. python qq机器人框架有哪些_使用Python的Tornado框架实现一个简单的WebQQ机器人