【问题标题】:How to avoid/disable .crc files for writing csv files in sparklyr?如何避免/禁用 .crc 文件以在 sparklyr 中写入 csv 文件?
【发布时间】:2018-12-14 03:11:22
【问题描述】:

我正在使用 spark_write_csv 函数将 spark 数据帧作为 csv 文件写入本地文件系统。在输出目录中,每个零件文件都有一个 .crc 文件。

我正在寻找避免生成这些 .crc 文件的 Hadoop/Spark 的任何功能或属性。

flights_tbl<-copy_to(sc,flights,"flights")
spark_write_csv(flights_tbl,  path="xxx" , mode = "overwrite")

这是我得到的输出:

.part-00000-365d53be-1946-441a-8e25-84cb009f2f45-c000.csv.crc

part-00000-365d53be-1946-441a-8e25-84cb009f2f45-c000

【问题讨论】:

  • .crc 文件更有可能与输出存储系统相关,而不是与 Hadoop/Spark 设置相关。这是一个简单的测试。在本地运行spark并将一个简单的DataFrame分别保存到本地存储和S3,你会看到本地输出文件夹中有.crc文件,而S3输出文件夹中没有.crc文件。这两个案例使用了本地系统相同的 Hadoop/Spark 设置。

标签: r csv amazon-s3 sparklyr


【解决方案1】:

这是不可能的。为所有 Spark 数据源和内置的遗留 RDD API 生成校验和文件,并且行为不可配置。

为了完全避免它,你必须:

  • 实现您自己的 Hadoop 输入格式。
  • 或者实现您自己的不依赖于 Hadoop 输入格式的数据源(v1 或 v2)。

并添加 spakrlyr 包装器以在 R 代码库中公开。

【讨论】:

  • 谢谢。那么使用 sparklyr 将 spark 数据帧写入 S3 时,crc 文件不会产生任何问题?
  • 不是在写入 s3 时,而是 AFAICT,如果你加载到 Redshift,它们会搞砸的。
  • 还有,好像一定有​​办法,因为EMR不会生成这些文件。
猜你喜欢
  • 2021-04-18
  • 2016-03-26
  • 2018-01-27
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
相关资源
最近更新 更多