想要在 Azure Databricks 上以追加模式写入 csv 文件。下面的代码在我的本地计算机上运行良好。(Jupyter 笔记本)
df = pd.read_csv("/dbfs/mnt/dev/tmp/ml_p/csv_append.csv")
df+6
答 [1]:/image/sXsgH.png
当我打开同一个 csv 文件并想在执行操作后保存该文件时。 我得到了,OSError:[Errno 95]不支持操作
with open('/dbfs/mnt/dev/tmp/ml_p/csv_append.csv', 'a') as f:
(df + 6).to_csv(f, header=False)
是否还有其他方法可以以附加模式写入 CSV 文件?或者我可以使用 pyspark 实现相同的目的吗?
最佳答案
对 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")
关于pandas - 在 Azure Databricks 上以追加模式写入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67223948/