Ibm cloud 如何列出dsx spark环境中的JAR以及加载到spark JVM中的JAR?

Ibm cloud 如何列出dsx spark环境中的JAR以及加载到spark JVM中的JAR?,ibm-cloud,data-science-experience,Ibm Cloud,Data Science Experience,我在尝试使用spark软件包时遇到了一些问题,例如: java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource 我已在lib dir中列出了文件: !find ~/data/libs/ 我可以看到我的JAR已安装: /gpfs/fs01/user/xxxx/data/libs/ /gpfs/fs01/user/xxxx/data/libs/scala-2.

我在尝试使用spark软件包时遇到了一些问题,例如:

java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource
我已在lib dir中列出了文件:

!find ~/data/libs/
我可以看到我的JAR已安装:

/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无法看到震击器


如何列出spark可用的JAR?

我创建了一个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"))
归属:

运行此命令突出了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.
错误:加载时出错,访问/gpfs/fs01/user/xxxx/data/libs/scala-2.11/mongo-java-driver-3.2.2.jar时出错
错误:在编译器镜像中找不到scala.reflect.internal.MissingRequirementError:object java.lang.object。

这让我意识到,尽管jar文件存在于正确的位置,但并没有正确地加载到jvm中。

我创建了一个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"))
归属:

运行此命令突出了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.
错误:加载时出错,访问/gpfs/fs01/user/xxxx/data/libs/scala-2.11/mongo-java-driver-3.2.2.jar时出错
错误:在编译器镜像中找不到scala.reflect.internal.MissingRequirementError:object java.lang.object。

这使我意识到,尽管jar文件存在于正确的位置,但并没有正确地加载到jvm中。

类路径位于环境变量SPARK\u DIST\u classpath中。以下 Python笔记本中执行的代码片段会产生一些重复和非JAR,但也会产生类路径上的JAR

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

请注意,类路径取决于所选的Spark版本。

类路径位于环境变量Spark\u DIST\u classpath中。以下 Python笔记本中执行的代码片段会产生一些重复和非JAR,但也会产生类路径上的JAR

!ls $(printenv SPARK_DIST_CLASSPATH | sed -e 's/:/ /g')
请注意,类路径取决于所选的Spark版本