返回介绍

数学基础

统计学习

深度学习

工具

Scala

四、 DataFrame 保存

发布于 2023-07-17 23:38:23 字数 7352 浏览 0 评论 0 收藏 0

  1. DataFrame 通过DataFrameWriter 实例来保存到各种外部存储系统中。

    • 你可以通过DataFrame.write 来访问DataFrameWriter

4.1 通用保存

  1. .format(source):设置数据格式

    • 返回self
    
    
    xxxxxxxxxx
    df.write.format('json').save('./data.json')
  2. .mode(saveMode):当要保存的目标位置已经有数据时,设置该如何保存。

    • 参数: saveMode 可以为:

      • 'append':追加写入
      • 'overwrite':覆写已有数据
      • 'ignore':忽略本次保存操作(不保存)
      • 'error':抛出异常(默认行为)
    • 返回self

    • 示例:

      
      
      xxxxxxxxxx
      df.write.mode('append').parquet('./data.dat')
  3. .partitionBy(*cols):按照指定的列名来将输出的DataFrame 分区。

    • 返回self

    • 示例:

      
      
      xxxxxxxxxx
      df.write.partitionBy('year', 'month').parquet('./data.dat')
  4. .save(path=None, format=None, mode=None, partitionBy=None, **options):保存DataFrame

4.2 专用保存

  1. .csv():将DataFrame 保存为csv 文件

    
    
    xxxxxxxxxx
    .csv(path, mode=None, compression=None, sep=None, quote=None, escape=None, header=None, nullValue=None, escapeQuotes=None, quoteAll=None, dateFormat=None, timestampFormat=None, ignoreLeadingWhiteSpace=None, ignoreTrailingWhiteSpace=None)

    示例:

    
    
    xxxxxxxxxx
    df.write.csv('./data.csv')
  2. .insertInto():将DataFrame 保存在table

    
    
    xxxxxxxxxx
    .insertInto(tableName, overwrite=False)

    它要求当前的DataFrame 与指定的table 具有同样的schema。其中overwrite 参数指定是否覆盖table 现有的数据。

  3. .jdbc():将DataFrame 保存在数据库中

    
    
    xxxxxxxxxx
    .jdbc(url, table, mode=None, properties=None)
    • 参数:

      • url:一个JDBC URL,格式为:jdbc:subprotocol:subname

      • table:表名

      • mode:指定当数据表中已经有数据时,如何保存。可以为:

        • 'append':追加写入
        • 'overwrite':覆写已有数据
        • 'ignore':忽略本次保存操作(不保存)
        • 'error':抛出异常(默认行为)
      • properties:一个字典,用于定义JDBC 连接参数。通常至少为:{ 'user' : 'SYSTEM', 'password' : 'mypassword'}

  4. .json():将DataFrame 保存为json 文件

    
    
    xxxxxxxxxx
    .json(path, mode=None, compression=None, dateFormat=None, timestampFormat=None)

    示例:

    
    
    xxxxxxxxxx
    df.write.json('./data.json')
  5. .orc():将DataFrame 保存为ORC 文件

    
    
    xxxxxxxxxx
    .orc(path, mode=None, partitionBy=None, compression=None)
  6. .pqrquet():将DataFrame 保存为Pqrquet 格式的文件

    
    
    xxxxxxxxxx
    .parquet(path, mode=None, partitionBy=None, compression=None)
  7. .saveAsTable():将DataFrame 保存为table

    
    
    xxxxxxxxxx
    .saveAsTable(name, format=None, mode=None, partitionBy=None, **options)
  8. .text():将DataFrame 保存为文本文件

    
    
    xxxxxxxxxx
    .text(path, compression=None)

    DataFrame 必须只有一列,切该列必须为字符串。每一行数据将作为文本的一行。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文