簡體   English   中英

無法在 DBFS 中保存文件

[英]Unable to save file in DBFS

在此處輸入圖像描述 我采用了可用於練習的 azure 數據集。 我從該數據集中獲得了 10 天的數據,現在我想將這些數據以 csv 格式保存到 DBFS 中。 我面臨一個錯誤:

“沒有這樣的文件或目錄:'/dbfs/temp/hive/mytest.csv'”

但另一方面,如果我能夠直接從 DBFS 訪問路徑。 這條路是正確的。

我的代碼:

from azureml.opendatasets import NoaaIsdWeather
from datetime import datetime
from dateutil import parser 
from dateutil.relativedelta import relativedelta


spark.sql('DROP Table if exists mytest')
dbutils.fs.rm("dbfs:/tmp/hive",recurse = True)

basepath = "dbfs:/tmp/hive" 

try:
  dbutils.fs.ls(basepath)
except:
  dbutils.fs.mkdirs(basepath)
else:
  raise Exception("The Folder "+ basepath + " already exist, this notebook will remove in the end")

dbutils.fs.mkdirs("dbfs:/tmp/hive")

start_date = parser.parse('2020-5-1')
end_date = parser.parse('2020-5-10')

isd = NoaaIsdWeather(start_date, end_date)
pdf = isd.to_spark_dataframe().toPandas().to_csv("/dbfs/temp/hive/mytest.csv")

我應該怎么辦?

謝謝

我嘗試重現相同的問題。 首先,我使用了以下代碼並使用os.listdir()確保該目錄存在。

from azureml.opendatasets import NoaaIsdWeather
from datetime import datetime
from dateutil import parser 
from dateutil.relativedelta import relativedelta
spark.sql('DROP Table if exists mytest')
dbutils.fs.rm("dbfs:/tmp/hive",recurse = True)
basepath = "dbfs:/tmp/hive" 
try:
  dbutils.fs.ls(basepath)
except:
  dbutils.fs.mkdirs(basepath)
else:
  raise Exception("The Folder "+ basepath + " already exist, this notebook will remove in the end")

dbutils.fs.mkdirs("dbfs:/tmp/hive")

import os  
os.listdir("/dbfs/tmp/hive/")

在此處輸入圖像描述

  • 然后我使用以下內容使用to_pandas_dataframe()編寫 csv 。 這樣就成功地將所需的 dataframe 寫入所需路徑中的 csv 文件。
mydf = isd.to_pandas_dataframe()  
mydf.to_csv("/dbfs/tmp/hive/mytest.csv")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM