如何在DSX Spark环境中列出罐子和装入Spark JVM的罐子



我正在遇到尝试使用火花包的问题,例如:

java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource

我在lib dir中列出了文件:

!find ~/data/libs/

我可以看到我的罐子已安装:

/gpfs/fs01/user/xxxx/data/libs/
/gpfs/fs01/user/xxxx/data/libs/scala-2.11
/gpfs/fs01/user/xxxx/data/libs/scala-2.11/mongo-spark-connector_2.11-2.0.0.jar
/gpfs/fs01/user/xxxx/data/libs/scala-2.11/mongo-java-driver-3.2.2.jar
/gpfs/fs01/user/xxxx/data/libs/pixiedust.jar
/gpfs/fs01/user/xxxx/data/libs/spark-csv_2.11-1.3.0.jar

但是,错误表明Spark无法看到罐子。

我如何列出可发射的罐子?

classPath在环境变量spark_dist_classpath中。下列python笔记本中的执行摘要会产生一些重复和非JARS,但也会产生类Path的罐子。

!ls $(printenv SPARK_DIST_CLASSPATH | sed -e 's/:/ /g')

请注意,类路径取决于选定的火花版。

我创建了一个scala笔记本并运行以下代码:

def urlses(cl: ClassLoader): Array[java.net.URL] = cl match {
  case null => Array()
  case u: java.net.URLClassLoader => u.getURLs() ++ urlses(cl.getParent)
  case _ => urlses(cl.getParent)
}
val  urls = urlses(getClass.getClassLoader)
println(urls.filterNot(_.toString.contains("ivy")).mkString("n"))

属性:https://gist.github.com/jessitron/8376139

运行此突出显示JVM加载MongoDB驱动程序的问题:

error: error while loading <root>, Error accessing /gpfs/fs01/user/xxxx/data/libs/scala-2.11/mongo-java-driver-3.2.2.jar
error: scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.

这使我意识到,尽管在正确的位置存在JAR文件未正确加载到JVM中。

相关内容

  • 没有找到相关文章

最新更新