当前位置: 首页 > 知识库问答 >
问题:

Spark-Csv写入quotemode不工作

曹骞仕
2023-03-14

我正在尝试使用Spark-CSV(https://github.com/databricks/Spark-CSV)将DataFrame写成CSV文件

res1.write.option("quoteMode", "NONE").format("com.databricks.spark.csv").save("File")

而不是

伦敦
哥本哈根
莫斯科

共有1个答案

墨安阳
2023-03-14

是的。要关闭双引号字符(“)和反斜杠字符(\)的默认转义,必须在。write()方法调用之后添加一个。option()方法调用,调用的参数正好合适。option()方法调用的目的是改变csv()方法“查找”引用字符实例的方式。为此,您必须更改“引用”实际含义的默认值;即,将所查找的字符从双引号字符(“)改为Unicode”\u0000“字符(实质上提供Unicode NUL字符,这在格式良好的JSON文档中是不会出现的)。

val dataFrame =
  spark.sql("SELECT * FROM some_table_with_a_json_column")
val unitEmitCsv =
  dataframe
    .write
    .option("header", true)
    .option("delimiter", "\t")
    .option("quote", "\u0000") //magic is happening here
    .csv("/FileStore/temp.tsv")

这只是我在尝试使用Apache Spark和emitting.csv文件时学到的几个教训之一。有关这方面的更多信息和上下文,请参阅我写的题为“集成SaaS的Apache Spark ETL管道示例”的博客文章。

 类似资料:
  • 我正在尝试使用pysparkn和spack-csv使用以下代码将火花数据帧写入s3 但是,我得到的错误是“输出目录已经存在”,我确信输出目录在作业开始之前不存在,我尝试使用不同的输出目录名称运行,但写入仍然失败。 如果我在作业失败后查看s3桶,我发现很少有零件文件是由火花写入的,但当它尝试写入更多时它失败了,脚本在本地运行良好,我在aws集群上使用10个火花执行器。有人知道这段代码有什么问题吗?

  • 我正在使用Spark 2.3,我需要将Spark数据帧保存到csv文件中,我正在寻找更好的方法。。查看相关/类似的问题,我发现了这个问题,但我需要一个更具体的: 如果DataFrame太大,如何避免使用Pandas?因为我使用了函数(下面的代码),它产生了: 内存不足错误(无法分配内存)。 使用文件I/O直接写入csv是更好的方法吗?它可以保留分隔符吗? 使用df。聚结(1)。写选项(“标题”、“

  • 在output.csv的第2行,转义字符和引号(“”)一起丢失了。我的要求是在output.csv中也保留转义字符。任何形式的帮助都将非常感谢。 提前谢了。

  • 问题内容: 我正在努力寻找一种 将数据写入 Node.js中 的CSV 的方法。 有几个CSV插件可用,但是它们只能“写”到stdout。 理想情况下,我想使用循环 逐行 编写。 问题答案: 对于文档()具体状态,它可以用流(见使用,)。因此,使用stdout并不是硬编码。 当您出现其他一些CSV解析器时,您可能也想看看它们。

  • 问题内容: 我有通过http请求访问的数据,并由服务器以逗号分隔的格式发送回了数据,我有以下代码: 文本内容如下: 如何将这些数据保存到CSV文件中。我知道我可以按照以下步骤做一些事情,逐行进行迭代: 但是我不确定现在如何正确地将每一行写入CSV 编辑—>感谢您提供的反馈意见,该解决方案非常简单,可以在下面看到。 解: 问题答案: 一般方式: 要么 使用CSV编写器: 要么 最简单的方法: