【问题标题】:Write CSV file in append mode on Azure Databricks在 Azure Databricks 上以附加模式写入 CSV 文件
【发布时间】:2021-04-23 04:18:19
【问题描述】:

想要在 Azure Databricks 上以附加模式写入 csv 文件。下面的代码在我的本地机器上运行良好。(Jupyter notebook)

df = pd.read_csv("/dbfs/mnt/dev/tmp/ml_p/csv_append.csv")
df+6

回答 [1]:https://i.stack.imgur.com/sXsgH.png

当我打开同一个 csv 文件并想在执行操作后保存文件时。 我得到了,OSError: [Errno 95] Operation not supported

with open('/dbfs/mnt/dev/tmp/ml_p/csv_append.csv', 'a') as f:
   (df + 6).to_csv(f, header=False)

是否有另一种方法可以在附加模式下写入 CSV 文件?或者我可以使用 pyspark 达到同样的效果吗?

【问题讨论】:

    标签: pandas pyspark databricks azure-databricks


    【解决方案1】:

    可以对 DBFS 上的文件执行的操作有一些限制(尤其是通过/dbfs 挂载点),而您达到了这个限制。解决方法是将文件从 DBFS 复制到本地文件系统,按照您的操作进行修改,然后上传回来。可以使用dbutils.fs 命令复制文件,例如:

    dbutils.fs.cp("dbfs:/mnt/dev/tmp/ml_p/csv_append.csv", "file:/tmp/csv_append.csv")
    df = pd.read_csv("/tmp/csv_append.csv")
    df+6
    with open('/tmp/csv_append.csv', 'a') as f:
       (df + 6).to_csv(f, header=False)
    dbutils.fs.mv("file:/tmp/csv_append.csv","dbfs:/mnt/dev/tmp/ml_p/csv_append.csv")
    

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 2020-04-18
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多