Spark 3.3.1导出CSV时如何去除数据首尾双引号?
解决Spark 3.3.1导出CSV时自动添加首尾双引号的问题
直接给解决方案:你代码里的option("quote", None)设置有误,Spark的CSV Writer要求quote参数传字符串类型,改成空字符串""就能禁用所有引号添加。
修改后的完整代码:
data = [{"Cnt": 'A|1'},{"Cnt": 'B|2'}] rdd = sc.parallelize(data) df_test = rdd.toDF() df_test.repartition(1).write.option('header','false')\ .option("delimiter",'|')\ .option("quoteAll", 'false')\ .option("quote", "")\ # 关键修改:用空字符串代替None .mode("overwrite")\ .csv(path_of_file)
补充说明
- Spark默认会给包含分隔符的字段添加引号,这是符合CSV规范的行为,但你要禁用的话,必须把
quote参数设为空字符串——因为Spark对None的处理逻辑是使用默认引号(双引号),而非禁用引号。 - 这么做会生成非标准CSV文件,后续如果用工具解析,字段里的
|会被当成分隔符拆分,导致数据错误。如果只是需要纯文本格式输出,这个方法完全满足你的需求。
内容的提问来源于stack exchange,提问作者Sarath Subramanian
相关产品推荐
相关产品推荐

