三角湖写作业失败java.lang.

学习预防java.lang.

写由亚当巴夫拉卡

2022年5月10日

问题

三角洲湖写作业时有故障,但有下列例外:

java.lang.UnsupportedOperationException: com.databricks.backend.daemon.data.client.DBFSV1.putIfAbsent(path: Path, content: InputStream).DBFSv1不支持多集群事务写作请升级到DBFSv2多集群文集设置databricks.delta.mlclusterWrites.如果禁用,写入单表必须发自单聚类

因果

三角湖多集群写作仅用DBFSv2支持databricks集群默认使用DBFSv2全部sparkSession对象使用DBFS v2

但是,如果应用使用文件系统API调用FileSystem.close()文件系统客户端返回默认值,即v1三角洲湖多集群写操作失败

下日志迹显示文件系统对象返回默认v1版本

          
           
          

求解

有两种方法预防这种情况:

  1. 永不调用FileSystem.close()内程序代码需要调用关闭API后先即时换新文件系统客户对象配置对象当前Apachespark会话,而不是空配置对象
    scala val文件System=FileSystem.get
  2. 或选择本代码样本实现相同目标
    scalaval文件System=FileSystem.get


文章有帮助吗