我正在嘗試讀取一個小的 txt 檔案,該檔案作為表添加到 Databricks 上的默認資料庫中。在嘗試通過本地檔案 API 讀取檔案時,我得到了一個FileNotFoundError,但我能夠使用SparkContext讀取與Spark RDD相同的檔案。
請在下面找到代碼:
with open("/FileStore/tables/boringwords.txt", "r") as f_read:
for line in f_read:
print(line)
這給了我錯誤:
FileNotFoundError Traceback (most recent call last)
<command-2618449717515592> in <module>
----> 1 with open("dbfs:/FileStore/tables/boringwords.txt", "r") as f_read:
2 for line in f_read:
3 print(line)
FileNotFoundError: [Errno 2] No such file or directory: 'dbfs:/FileStore/tables/boringwords.txt'
在哪里,我使用SparkContext讀取檔案沒有問題:
boring_words = sc.textFile("/FileStore/tables/boringwords.txt")
set(i.strip() for i in boring_words.collect())
正如預期的那樣,我得到了上述代碼塊的結果:
Out[4]: {'mad',
'mobile',
'filename',
'circle',
'cookies',
'immigration',
'anticipated',
'editorials',
'review'}
我還參考了此處的DBFS 檔案以了解本地檔案 API 的局限性,但在該問題上沒有任何指導意義。任何幫助將不勝感激。謝謝!
uj5u.com熱心網友回復:
問題是您使用的open函式僅適用于本地檔案,并且對 DBFS 或其他檔案系統一無所知。要使其正常作業,您需要使用DBFS 本地檔案 API并將/dbfs前綴附加到檔案路徑/dbfs/FileStore/....::
with open("/dbfs/FileStore/tables/boringwords.txt", "r") as f_read:
for line in f_read:
print(line)
uj5u.com熱心網友回復:
或者,您可以簡單地使用內置的 csv 方法:
df = spark.read.csv("dbfs:/FileStore/tables/boringwords.txt")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/364789.html
上一篇:根據天為列創建地圖串列
