DataFrame.to_csv抛出错误'[Errno 2] No such file or directory'

5 浏览
0 Comments

DataFrame.to_csv抛出错误'[Errno 2] No such file or directory'

我正在尝试将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] No such file or directory:

'/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选项会抛出错误。我也检查了权限,一切正常!

0
0 Comments

当使用DataFrame.to_csv()将DataFrame保存为CSV文件时,有时会遇到错误'[Errno 2] No such file or directory'。这个错误的原因是指定的文件路径不存在或无法访问。

解决这个问题的方法是检查指定的文件路径是否正确,并确保路径指向一个存在的目录。如果路径是一个相对路径,可以尝试使用绝对路径来代替。另外,还要确保当前用户对该目录具有读写权限。

另外,还有一种常见的情况是,如果指定的文件路径包含特殊字符或空格,可能会导致文件路径无法正确解析。在这种情况下,可以尝试使用双引号或单引号将文件路径括起来,以避免解析错误。

以下是一个示例代码,演示了如何解决这个问题:

import pandas as pd
# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'John'],
        'Age': [28, 32, 25],
        'City': ['New York', 'Paris', 'London']}
df = pd.DataFrame(data)
# 将DataFrame保存为CSV文件
file_path = 'data.csv'  # 此处为相对路径,如果使用绝对路径,请替换为实际路径
df.to_csv(file_path)

在上述示例中,如果当前工作目录下不存在名为'data.csv'的文件,就会抛出'[Errno 2] No such file or directory'错误。为了解决这个问题,可以将'file_path'修改为绝对路径,或者确保当前工作目录下存在'data.csv'文件。

总结起来,当使用DataFrame.to_csv()保存DataFrame为CSV文件时,如果遇到'[Errno 2] No such file or directory'错误,可以通过检查文件路径的正确性和权限,并确保文件路径中不包含特殊字符或空格来解决这个问题。

0
0 Comments

问题可能出现的原因是文件或目录不存在。解决方法是使用`os.makedirs`函数创建目录,并使用`open`函数创建文件,然后再使用`DataFrame.to_csv`将数据保存到文件中。以下是完整的解决方案:

from os import makedirs
# 创建目录
makedirs(enrichedDataDir)
# 创建文件并写入数据
with open(enrichedDataFile, 'w') as output_file:
    df.to_csv(output_file, sep='; ')

同时,还可以参考以下链接中的解决方案:

- [stackoverflow.com/a/12201952/10417531](https://stackoverflow.com/a/12201952/10417531)

- [stackoverflow.com/a/18758737/10417531](https://stackoverflow.com/a/18758737/10417531)

0
0 Comments

问题的原因是使用Microsoft Azure Datalake Store存储.csv文件时出现了错误。使用df.to_csv无法将文件写入Azure Datalake Store。

解决方法是将Pandas DataFrame更改为Spark DataFrame,并使用以下代码将其写入csv文件:

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) 

这样就解决了问题。

0