繁体   English   中英

从 Synapse Notebook 覆盖 Azure datalake Gen 2 中的文件会引发异常

[英]Overwriting a file in Azure datalake Gen 2 from Synapse Notebook throws Exception

作为从 Azure Databricks 迁移到 Azure Synapse Analytics Notebooks 的一部分,我遇到了下面解释的问题。

从 Azure Datalake Storage Gen 2 读取 CSV 文件并使用以下命令将其分配给 pyspark 数据帧时。

df = spark.read.format('csv').option("delimiter", ",").option("multiline", "true").option("quote", '"').option("header", "true").option("escape", "\\").load(csvFilePath)

处理完这个文件后,我们需要覆盖它,我们使用以下命令。

df.coalesce(1).write.option("delimiter", ",").csv(csvFilePath, mode = 'overwrite', header = 'true')

这样做的目的是删除路径“csvFilePath”处的现有文件,并且失败并出现错误“Py4JJavaError:调用 o617.csv 时发生错误”。

我注意到的事情:

  1. 一旦覆盖命令删除了路径“csvFilePath”处的 CSV 文件,数据帧“df”中的数据也会被删除。
  2. 看起来它是在运行时引用文件,而传统上在 databricks 中我们没有这个问题并且覆盖成功运行。

[Synapse Notebook 在写入命令时返回的错误。][1] [1]:https://i.stack.imgur.com/Obj9q.png

建议执行挂载数据存储。 请参考以下文档。

https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-use-databricks-spark

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM