DataFrame.to_CSV引发错误'[Errno 2]没有这样的文件或目录'

DataFrame.to_csv throws error #39;[Errno 2] No such file or directory#39;(DataFrame.to_CSV引发错误#39;[Errno 2]没有这样的文件或目录#39;)
本文介绍了DataFrame.to_CSV引发错误'[Errno 2]没有这样的文件或目录'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将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 Datalake 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) 

而且很管用。

这篇关于DataFrame.to_CSV引发错误'[Errno 2]没有这样的文件或目录'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)