scala - 使用 Scala Spark 在同一个 csv 文件中追加新表
问题描述
我想将表格附加到metrics
现有的 CSV 文件中。我使用下面的代码:
metrics.coalesce(1)
.write
.option("header", "true")
.option("sep",",")
.mode("Append")
.csv("data/outputs.csv}")
每次运行下面的代码块时,都会.part-00000-{xxxxxx-xxxxx......}.csv
在 data/outputs.csv 中创建一个新文件(其中 outputs.csv 是一个文件夹,而不是 CSV 文件)。
有什么方法可以始终将表附加到同一个 CSV 文件中而不是创建新的 .csv 文件?以及任何方式来定义这个CSV的最终名称,而不是使用.part-00000-{xxxxxx-xxxxx......}.csv
格式?
我尝试使用.mode(SaveMode.Append)
具有相同复制结果的保存模式附加选项 ( )。
解决方案
你必须明确地联合它们,然后使用Overwrite
而不是附加。像这样的东西:
spark
.read
.option(...)
.csv("data/outputs.csv")
.union(metrics)
.coalesce(1)
.write
.option(...)
.mode("Overwrite")
.csv("data/outputs.csv")
推荐阅读
- rust - 有没有办法做 unwrap_or_return 一个错误(任何错误)
- python - 为什么我会收到此错误?TypeError:+ 不支持的操作数类型:添加两个日期时的“TimedeltaIndex”和“relativedelta”
- javascript - 如何在赛普拉斯自定义命令中调用“请求”?
- javascript - 如何使用特定键实现 onkeyup 功能
- node.js - 如何通过 id 发布对象
- ios - 无法删除 UITableView 行
- angular - 如何在根模块提供程序数组中为 useFactory lambda 函数提供构造函数参数?(角度 8)
- php - file_get_contents 适用于本地主机而不是共享主机
- scala - 为什么将 scala Set 转换为 Vector 而不是 List?
- c++ - 自定义迭代器范围函数无效输出