如何在Python中创建CSV文件时不打印引号字符

2024-04-20 08:15:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV文件,我正在Azure Databrick中使用Python创建该文件。这是获取一个数据帧并从中生成一个CSV文件。问题是,当数据框中存在空值时,输出为2个双引号,即“”

示例输出

L1Code  L1 Desc1    L1 Desc2    L1 Desc3    L2Code
Beverage    Beverage    ""  ""  Drink Blends

这是我用来生成文件的代码,其中df是一个已经创建的数据帧

from pyspark.sql import SQLContext

def createCsvFile(data, rootPath, filePath):
  data.coalesce(1).write.mode("overwrite").format("com.databricks.spark.csv").option("header", "true").option("delimiter", "\t").option("quoteMode", "NONE").csv(rootPath + filePath + ".tmp")

  fileList = dbutils.fs.ls(rootPath + filePath + ".tmp/")

  for file in fileList:
    if file.name.endswith("csv"):
      filename = file.path
      dbutils.fs.cp(filename, rootPath + filePath + ".txt")

  dbutils.fs.rm(rootPath + filePath + ".tmp", recurse=True)


sqlCtx = SQLContext(sc)
data = sqlCtx.createDataFrame(df)
createCsvFile(data, '/mnt/adlsdata/Raw/Astute/', 'products')

Tags: 文件csv数据l1dfdatafstmp
1条回答
网友
1楼 · 发布于 2024-04-20 08:15:03

我最终需要使用emptyValue选项使ti工作

  data.coalesce(1).write.mode("overwrite").format("com.databricks.spark.csv").option("header", "true").option("delimiter", "\t").option("quoteMode", "NONE").option("quote", u'\u0000').option("nullValue", "").option("emptyValue", "").csv(rootPath + filePath + ".tmp")

相关问题 更多 >