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

如果您不指定数据清晰路径或定义数据模式,启动自动加载器作业时会发生非法控件异常错误。

写由荷塞冈萨雷斯

2022年10月12日
删除

信息学

文章应用到Databricks运行9.1LTS

问题

获取时自动加载器为ELT管道取取数据非法参数例外:请提供源目录路径选项`path'报错消息

启动自动加载器作业时会报错,如果数据路径或数据模式没有定义。

错误: 非法控件异常回溯
          
            1 df = (  ----> 2    spark       3    .readStream.format("cloudFiles")       4    .options(**{       5        "cloudFiles.format": "csv",  /databricks/spark/python/pyspark/sql/streaming.py in load(self, path, format, schema, **options)     480            return self._df(self._jreader.load(path))     481        else:  --> 482            return self._df(self._jreader.load())     483     484    def json(self, path, schema=None, primitivesAsString=None, prefersDecimal=None,  /databricks/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py in __call__(self, *args)    1302    1303        answer = self.gateway_client.send_command(command)  -> 1304        return_value = get_return_value(    1305            answer, self.gateway_client, self.target_id, self.name)    1306  /databricks/spark/python/pyspark/sql/utils.py in deco(*a, **kw)     121                # Hide where the exception came from that shows a non-Pythonic     122                # JVM exception message.123加注转自None124 else:125加注非法控件例外:请提供源目录路径选项`path'
           
          

因果

自动加载器需要您提供路径数据定位或定义模式提供数据路径时,Auto加载器尝试推算数据模式不提供路径,自动加载器无法推理sche

举个例子,if值 未包括在样本代码中,错误生成时启动自动加载器作业

Pythondf=spark.readStream.format
          
           ,
           
            )\.load
           
          

if值 包含在此样本代码中, 自动加载器作业可推导启动时的schema并不会产生错误

Pythondf=spark.readStream.format
          
           ,
           
            )\.load
            
             )
            
           
          

求解

使用自动加载器时必须提供路径数据或数据模式

如果您不指定路径,则数据模式MUST定义

示例代码定义数据模式,但没有指定路径因数据模式定义,路径可选性自动加载器作业启动时此不产生错误 。

Pythondf=spark.readStream.format
          
           ,
           
            .Schema
            
             )\.load
            
           
          


文章有帮助吗