在DataBricks中读/写单个文件

时间:2018-03-16 10:25:14

标签: python pyspark databricks

我有一个文件,其中包含存储在简单文本文件中的名称列表。每行包含一个名称。现在我需要根据用户输入以编程方式为此文件添加新名称。 对于输入本身,我使用DataBricks小部件 - 这工作得很好,我将新名称存储在一个字符串对象中。 现在我需要将此名称附加到我的文件中。

该文件安装在/mnt/blob/myNames.txt下的DataBricks文件系统(DBFS)中

尝试读取这样的文件时:

f = open("/mnt/blob/myNames.txt", "r") 
print f

它返回错误"没有这样的文件或目录"

所以我尝试将新名称包装到数据框中并将其附加到现有文件中,但这也不起作用,因为dataframe.write.save旨在写入文件夹

我可以使用哪个最简单的python将这个新名称附加到我的文件中?

2 个答案:

答案 0 :(得分:4)

您可以使用 dbutils 从DBFS写入和读取文件。使用数据桶中的 dbutils.fs.help()命令访问DBFS的帮助菜单。

因此,您可以使用以下命令将您的名字附加到您的文件中:

dbutils.fs.put("/mnt/blob/myNames.txt", new_name)

您正在获取"没有这样的文件或目录"错误,因为找不到DBFS路径。使用 dbfs:/ 访问DBFS路径。这是您应该阅读文件的方式:

f = open("/dbfs/mnt/blob/myNames.txt", "r")

答案 1 :(得分:1)

您可以使用“ a”以附加模式打开文件

with  open("/dbfs/mnt/sample.txt", "a") as f:
  f.write("append values")

现在您可以使用来查看内容

with  open("/dbfs/mnt/sample.txt", "r") as f_read:
for line in f_read:
 print(line)

解决方案:Here