DataFrame.to_csv 抛出错误“[Errno 2]没有这样的文件或目录”

2023-12-01

我正在尝试将 DataFrame 写入 .csv 文件:

now = datetime.datetime.now()
date = now.strftime("%Y-%m-%d")

enrichedDataDir = "/export/market_data/temp"
enrichedDataFile = enrichedDataDir + "/marketData_optam_" + date + ".csv"

dbutils.fs.ls(enrichedDataDir)
df.to_csv(enrichedDataFile, sep='; ')

这引发了我以下错误

IOError: [Errno 2] 没有这样的文件或目录: '/export/market_data/temp/marketData_optam_2018-10-12.csv'

但当我这样做时

dbutils.fs.ls(enrichedDataDir)

Out[72]: []

没有错误!当我进入目录级别(更高一级)时:

enrichedDataDir = "/export/market_data"
dbutils.fs.ls(enrichedDataDir)

Out[74]: 
[FileInfo(path=u'dbfs:/export/market_data/temp/', name=u'temp/', size=0L)
 FileInfo(path=u'dbfs:/export/market_data/update/', name=u'update/', size=0L)]

这也有效。这对我来说意味着我确实拥有我想要访问的所有文件夹。但我不知道你的.to_csv选项会引发错误。我也检查了权限,没问题!


主要问题是,我使用 Microsoft Azure Data Lake Store 来存储这些 .csv 文件。无论出于何种原因,都不可能通过df.to_csv写入 Azure Datalake 存储。

由于我试图使用df.to_csv我使用的是 Pandas DataFrame 而不是 Spark DataFrame。

我改为

from pyspark.sql import *

df = spark.createDataFrame(result,['CustomerId', 'SalesAmount'])

然后通过以下行写入 csv

from pyspark.sql import *

df.coalesce(2).write.format("csv").option("header", True).mode("overwrite").save(enrichedDataFile) 

它有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataFrame.to_csv 抛出错误“[Errno 2]没有这样的文件或目录” 的相关文章

随机推荐