pandas - 在 Azure Databricks 上以追加模式写入 CSV 文件

标签 pandas pyspark databricks azure-databricks

想要在 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/

相关文章:

python - 使用正则表达式创建 pandas 列?

python-3.x - 函数式编程: How does one create a new column to a dataframe that contains a multiindex column?

python - 如何按列分组并在保留其他列的同时找到最大值?

python - Pyspark RDD : find index of an element

python - databricks - 安装的S3 - 如何获取文件元数据,例如上次修改日期(Python)

azure - 如何自定义azure Databricks中小部件的样式,例如下拉列表的宽度?

python - 为 Pandas 中的多列赋值

python - Pandas 索引标题与列标题一致

python - 给定开始日期和结束日期,生成中间所有周的最有效方法是什么?

pandas - Koalas GroupBy > 应用 > Lambda > 系列