如何列出 dsx spark 环境中的 jar 以及加载到 spark JVM 中的 jar?
how to list jars in the dsx spark environment and the jars loaded into the spark JVM?
我在尝试使用 spark 包时遇到问题,例如:
java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource
我已经列出了 lib 目录中的文件:
!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 无法看到 jar。
如何列出可用于 spark 的 jar?
我创建了一个 scala notebook 和 运行 以下代码:
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 中。
类路径在环境变量SPARK_DIST_CLASSPATH中。下列
在 Python 笔记本中执行的代码片段会产生一些重复项和非 JAR,但也会产生类路径上的 JAR。
!ls $(printenv SPARK_DIST_CLASSPATH | sed -e 's/:/ /g')
请注意,类路径取决于所选的 Spark 版本。
我在尝试使用 spark 包时遇到问题,例如:
java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource
我已经列出了 lib 目录中的文件:
!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 无法看到 jar。
如何列出可用于 spark 的 jar?
我创建了一个 scala notebook 和 运行 以下代码:
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 中。
类路径在环境变量SPARK_DIST_CLASSPATH中。下列 在 Python 笔记本中执行的代码片段会产生一些重复项和非 JAR,但也会产生类路径上的 JAR。
!ls $(printenv SPARK_DIST_CLASSPATH | sed -e 's/:/ /g')
请注意,类路径取决于所选的 Spark 版本。