You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks含特殊字符及多语言数据导出CSV乱码问题咨询

解决Azure Databricks导出CSV乱码问题

哈哈,这个乱码问题我太熟了!之前帮同事解决过一模一样的场景——Databricks里SQL查询显示正常,一导出CSV到本地就变乱码,核心就是编码格式没对齐:Databricks默认导出可能用了非UTF-8的编码(比如ISO-8859-1),而你的多语言内容和特殊字符(像Don’t里的撇号)必须用UTF-8才能正确保存。

给你几个靠谱的解决办法,按优先级来:

1. 用Databricks UI导出时指定UTF-8编码

如果习惯用UI操作,在导出数据的时候:

  • 点击查询结果右上角的「Export」按钮
  • 在弹出的选项里,找到「Encoding」(有些版本可能藏在高级设置里),选择「UTF-8」
  • 确认导出后下载到本地,这样得到的CSV就不会乱码了

2. 用PySpark代码导出(更可控,适合批量场景)

如果UI导出找不到编码选项,或者需要自动化导出,用代码更可靠。直接在Databricks Notebook里运行这段PySpark代码:

# 先执行SQL查询获取数据
df = spark.sql("SELECT * FROM table1")

# 导出为UTF-8编码的CSV,同时处理特殊字符转义
df.write.format("csv") \
  .option("encoding", "UTF-8") \
  .option("quote", "\"") \          # 用双引号包裹含特殊字符的字段
  .option("escape", "\"") \         # 转义字段内的双引号
  .option("header", "true") \       # 可选:导出表头
  .mode("overwrite") \              # 覆盖已有文件
  .save("/dbfs/FileStore/temp/table1_export.csv")

执行完后,去Databricks的「Data」->「DBFS」里找到/FileStore/temp/table1_export.csv,点击下载到本地即可。

3. 本地打开CSV的正确姿势

就算导出是UTF-8,用Excel直接双击打开可能还是乱码(因为Excel默认用系统编码,比如Windows的GBK)。这时候换个方式导入:

  • 打开Excel,点击「数据」->「自文本/CSV」
  • 选择下载好的CSV文件,在导入向导里选择「编码」为「UTF-8」
  • 确认导入后,中文和特殊字符就会正常显示了

为什么会出现Don’t这种乱码?

那是典型的UTF-8字符被用ISO-8859-1解码导致的:’是UTF-8的特殊字符,当用ISO-8859-1打开时,就会被拆成’这三个乱码字符。只要保证导出和打开都用UTF-8,这个问题就彻底解决了。

内容的提问来源于stack exchange,提问作者Praveen DA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 06:32:44