gpt4 book ai didi

azure - Databricks FileInfo : java. lang.ClassCastException : com. databricks.backend.daemon.dbutils.FileInfo 无法转换为 com.databricks.service.FileInfo

转载 作者:行者123 更新时间:2023-12-02 23:15:24 42 4
gpt4 key购买 nike

尝试遍历已安装的 Databricks 卷中的目录时遇到 ClassCastException。

java.lang.ClassCastException: com.databricks.backend.daemon.dbutils.FileInfo cannot be cast to com.databricks.service.FileInfo
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at scala.collection.TraversableLike.map(TraversableLike.scala:238)
at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
at scala.collection.AbstractTraversable.map(Traversable.scala:108)
at com.mycompany.functions.UnifiedFrameworkFunctions$.getAllFiles(UnifiedFrameworkFunctions.scala:287)

其中 getAllFiles 函数如下所示:

    import com.databricks.service.{DBUtils, FileInfo}
...
def getAllFiles(path: String): Seq[String] = {
val files = DBUtils.fs.ls(path)
if (files.isEmpty)
List()
else
files.map(file => { // line where exception is raised
val path: String = file.path
if (DBUtils.fs.dbfs.getFileStatus(new org.apache.hadoop.fs.Path(path)).isDirectory) getAllFiles(path)
else List(path)
}).reduce(_ ++ _)
}

在本地,它可以使用 Databricks Connect 运行正常,但是当 src 代码打包为 jar 并在 Databricks 集群上运行时,会引发上述异常。

由于 Databricks 在其文档中建议使用 com.databricks.service.DBUtils ,并且在调用 DBUtils.fs.ls(path) 时,它返回 FileInfo code> 来自同一个 service 包 - 这是一个错误还是应该以其他方式使用 api?

我正在使用版本 8.1 的 Databricks Connect & Runtime

最佳答案

我尝试了一种解决方法来从文件夹中获取文件名。

我已执行以下步骤来从安装的目录中获取文件名列表。

我在“mnt/Sales/”位置存储了 3 个文件。

第1步:使用display(dbutils.fs.ls(“/mnt/Sales/”))命令。 enter image description here

第 2 步:将文件位置分配给变量

enter image description here

第三步:将变量加载到数据帧并获取文件名。

enter image description here

关于azure - Databricks FileInfo : java. lang.ClassCastException : com. databricks.backend.daemon.dbutils.FileInfo 无法转换为 com.databricks.service.FileInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69391541/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com