如何将 Pandas 数据帧写入 Databricks dbfs/FileStore?

Sha*_*oms 5 python amazon-s3 dataframe pandas databricks

在此处输入图片说明在此处输入图片说明我是 Databricks 的新手,需要帮助将 Pandas 数据帧写入 databricks 本地文件系统。

我确实在 google 中搜索过,但找不到任何与此类似的情况,也尝试了 databricks(附加)提供的帮助 guid,但这也不起作用。尝试进行以下更改以找到我的运气,命令运行正常,但文件未写入目录(预计会创建 wrtdftodbfs.txt 文件)

  1. df.to_csv("/dbfs/FileStore/NJ/wrtdftodbfs.txt")

结果:抛出以下错误

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'/dbfs/FileStore/NJ/wrtdftodbfs.txt'

  1. df.to_csv("\\dbfs\\FileStore\\NJ\\wrtdftodbfs.txt")

结果:没有错误,但也没有写入任何内容

  1. df.to_csv("dbfs\\FileStore\\NJ\\wrtdftodbfs.txt")

结果:没有错误,但也没有写入任何内容

  1. df.to_csv(path ="\\dbfs\\FileStore\\NJ\\",file="wrtdftodbfs.txt")

结果:TypeError: to_csv() 得到了一个意外的关键字参数“path”

  1. df.to_csv("dbfs:\\FileStore\\NJ\\wrtdftodbfs.txt")

结果:没有错误,但也没有写入任何内容

  1. df.to_csv("dbfs:\\dbfs\\FileStore\\NJ\\wrtdftodbfs.txt")

结果:没有错误,但也没有写入任何内容

该目录存在并且手动创建的文件显示出来,但 pandas to_csv 从不写入也不会出错。

dbutils.fs.put("/dbfs/FileStore/NJ/tst.txt","Testing file creation and existence")

dbutils.fs.ls("dbfs/FileStore/NJ")
Run Code Online (Sandbox Code Playgroud)

Out[186]: [FileInfo(path='dbfs:/dbfs/FileStore/NJ/tst.txt', name='tst.txt', size=35)]

感谢您的时间,如果所附的细节不够清楚,请原谅我。

Gio*_*zar 12

在你的笔记本数据块中尝试一下:

import pandas as pd
from io import StringIO

data = """
CODE,L,PS
5d8A,N,P60490
5d8b,H,P80377
5d8C,O,P60491
"""

df = pd.read_csv(StringIO(data), sep=',')
#print(df)
df.to_csv('/dbfs/FileStore/NJ/file1.txt')

pandas_df = pd.read_csv("/dbfs/FileStore/NJ/file1.txt", header='infer') 
print(pandas_df)
Run Code Online (Sandbox Code Playgroud)


Nic*_*wow 6

这对我来说很有效:

outname = 'pre-processed.csv'
outdir = '/dbfs/FileStore/'
dfPandas.to_csv(outdir+outname, index=False, encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)

要下载该文件,请添加files/filename到您的笔记本 URL(在问号之前?):

https://community.cloud.databricks.com/files/pre-processed.csv?o=189989883924552#

(您需要编辑您的主页网址,对我来说是:

https://community.cloud.databricks.com/?o=189989883924552# )

dbfs 文件浏览器

  • 您好,Nani,如果您将路径+文件名放在您的主页 URL 中间(.com/ 之后),那就足够了,您的下载应该会自动开始。就我而言,我必须在主页 URL 中间插入“files/pre-processed.csv”。 (2认同)