親愛的磚專家,
我有一些懷疑當處理DBFS和本地文件係統。
從ADLS DBFS Case01:複製一個文件。我能夠這樣做,通過下麵的python代碼:
#
spark.conf.set (“fs.azure.account.auth。類型”、“OAuth”)
spark.conf.set (“fs.azure.account.oauth.provider。類型”、“org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider”)
spark.conf.set (“fs.azure.account.oauth2.client.id”、“* * *”)
spark.conf.set (“fs.azure.account.oauth2.client。秘密”、“多”)
spark.conf.set (“fs.azure.account.oauth2.client。端點”、“https://login.microsoftonline.com/99e838ef - 4 - ec1 ce2 efbb56fb03c/oauth2/token——9229 - 2”)
#
abfssFile = ' abfss: / /(電子郵件保護)/數據/ file.csv '
dbfsFile = ' dbfs: / workfile / file.csv '
dbutils.fs。cp (abfssFile dbfsFile)
Case02:讀取文件DBFS現在。
張開(r, dbfsFile換行符= ")csv_file:
input_data = csv_file.read ()
打印(input_data)
錯誤:
FileNotFoundError (Errno 2):沒有這樣的文件或目錄:“dbfs: / workfile / file.csv”
後來我意識到,open()命令來處理本地文件係統中的文件。所以我試圖將文件從DBFS複製到本地文件係統
從DBFS Case03:複製一個文件到本地文件係統
localFile = '文件:/ / / tmp / wf_lfs.csv”
dbutils.fs。cp (dbfsFile localFile)
錯誤:
. lang。SecurityException:不能使用com.databricks.backend.daemon.driver。WorkspaceLocalFileSystem——禁止本地文件係統訪問
問題1
本地文件係統。我認為這是火花的文件係統驅動程序節點。我的理解正確嗎?
問題2
有什麼方法可以直接讀取文件DBFS嗎?如果不是因為DBFS是分布式文件係統嗎?
問題3
如何將一個文件從DBFS複製到本地文件係統?
提前謝謝你的幫助!
@KS劉:
回答1:
是的,你是正確的。本地文件係統是指火花驅動節點上的文件係統。這是引發應用程序運行的文件係統,應用程序可以讀取和寫入文件。
答案2:
是的,你可以直接從DBFS讀取文件。您可以使用文件係統數據磚從DBFS (DBFS) API來讀取文件。您還可以使用dbutils.fs。頭命令來預覽DBFS的第n個字節的文件。這是一個例子:
dbfs_file = " / mnt /數據/ myfile。csv”dbutils.fs。頭(dbfs_file, 100)
這將第一個100字節的文件預覽/ mnt /數據/ myfile。在DBFS csv。
答案3:
從DBFS複製一個文件到本地文件係統中,您可以使用dbutils.fs。cp命令
文件:/模式指定本地文件係統。這是一個例子:
dbfs_file = " / mnt /數據/ myfile。csv”local_file = " file: / / / tmp / myfile。csv”dbutils.fs。cp (dbfs_file local_file)
這將複製文件/ mnt /數據/ myfile。csv / tmp / myfile DBFS。csv的本地文件係統。注意,您需要寫權限的本地文件係統寫文件。同時,確保文件:/ / /模式用於指定本地文件係統。
你好,
我需要解壓文件在S3中需要將文件複製到本地文件係統。
當我使用dbutils.fs。cp (dbfs_file local_file) dbfs文件作為s3: / / path_to_file或dbfs: / / path_to_file和local_file文件:/ / / tmp / path_to_file,我得到如下——錯誤
錯誤- - - - - -. lang。SecurityException:不能使用com.databricks.backend.daemon.driver。WorkspaceLocalFileSystem——禁止本地文件係統訪問
如何應用寫權限和解決這個問題。