显式路径自动加载程序所需数据定义或模式

如果你不指定一个明确的路径数据或定义您的数据模式,得到却是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 ()


这篇文章有用吗?