web-dev-qa-db-ja.com

DataBricksで単一ファイルの読み取り/書き込み

単純なテキストファイルに保存されている名前のリストを含むファイルがあります。各行には1つの名前が含まれています。次に、ユーザーの入力に基づいて、このファイルに新しい名前をプログラムで追加する必要があります。入力自体には、DataBricksウィジェットを使用します。これは問題なく機能しており、新しい名前が文字列オブジェクトに格納されています。次に、この名前をファイルに追加する必要があります。

ファイルは、DataBricksファイルシステム(DBFS)の/mnt/blob/myNames.txtにマウントされます。

このようにファイルを読み取ろうとすると:

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

「そのようなファイルまたはディレクトリはありません」というエラーが返されます

そのため、新しい名前をデータフレームにラップして既存のファイルに追加しようとしましたが、dataframe.write.saveはフォルダーに書き込むように設計されているため、これも機能しませんでした。

この新しい名前をファイルに追加するために使用できる最も単純なpython)は何でしょうか?

3
Gerhard Brueckl

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")
2
Elsis