顯式路徑自動加載程序所需數據定義或模式

如果你不指定一個明確的路徑數據或定義您的數據模式,得到卻是IllegalArgumentException錯誤當你開始一個汽車裝載機工作。

寫的何塞·岡薩雷斯

去年發表在:2022年10月12日
刪除

信息

本文適用於磚運行時9.1 LTS及以上。

問題

你對你的英語教學使用自動加載程序來攝取數據管道,當你得到一個IllegalArgumentException:請提供源目錄路徑和選擇“路徑”錯誤消息。

你得到這個錯誤當你開始一個汽車裝載機工作,如果數據或數據的路徑模式沒有定義。

錯誤:IllegalArgumentException回溯(最近調用最後)<命令- 1874749868040573 > <模塊> 1 df =(- - - - - > 2火花3 .readStream.format (“cloudFiles”) 4 .options cloudFiles (* * {5”。”:“csv格式”/磚/火花/ python / pyspark / sql /流。py負載(自我、路徑、格式、模式* *選項)480年返回self._df (self._jreader.load(路徑))481:- - > 482年返回self._df (self._jreader.load ()) 483 484 def json(自我、路徑、模式= None, primitivesAsString = None, prefersDecimal = None, /磚/火花/ python / lib / py4j-0.10.9-src.zip / py4j / java_gateway。py __call__(自我,* args) 1302 1303回答= self.gateway_client.send_command(命令)- > 1304 return_value = get_return_value(1305回答,自我。gateway_client,自我。target_id self.name) 1306 /磚/火花/ python / pyspark / sql /跑龍套。py在德科(*,* *千瓦)121 #隱藏除了來自哪裏顯示non-Pythonic 122 # JVM異常消息。其他- - > 123年籌集124從沒有轉換:125提高IllegalArgumentException:請提供源目錄路徑和選擇“路徑”

導致

自動加載程序要求您提供您的數據位置的路徑,或您定義的模式。如果您提供一個路徑數據,自動加載程序試圖推斷的數據模式。如果你不提供路徑,自動加載程序無法推斷出的模式,需要顯式地定義數據模式。

例如,如果一個值<輸入通道>不包括在這個示例代碼,生成的錯誤是當你開始你的汽車裝載機工作。

% python df = spark.readStream.format (cloudFiles) \ .option (< cloudFiles-option >、<選項值>)\ .load ()

如果一個值<輸入通道>包含在這個示例代碼,自動加載器工作時可以推斷出模式開始,不會生成錯誤。

% python df = spark.readStream.format (cloudFiles) \ .option (< cloudFiles-option >、<選項值>)\ .load(<輸入通道>)

解決方案

你必須提供的路徑數據或數據模式在使用自動加載程序。

如果你不指定路徑,則必須定義數據模式。

例如,此示例代碼定義的數據模式,但沒有指定路徑。因為數據模式定義,路徑是可選的。這並不生成一個錯誤當汽車裝載機工作已啟動。

% python df = spark.readStream.format (cloudFiles) \ .option (< cloudFiles-option >、<選項值>). schema(<模式>)\ \ .load ()