PySpark:在运行时导入jar?

时间:2018-02-26 16:07:36

标签: python mongodb apache-spark pyspark

我正在尝试将pyspark连接到mongodb。 群集已经设置好,所以我需要动态导入mongo驱动程序。

我已按照文档(此处和此处spark.jars)进行了尝试:

spark = SparkSession.builder\
            .config("spark.mongodb.input.uri" , "mongodb://127.0.0.1/test.coll")\
            .config("spark.mongodb.output.uri", "mongodb://127.0.0.1/test.coll")\
            .config("spark.jars.packages"     , "org.mongodb.spark:mongo-spark-connector_2.11:2.2.1")\
            .getOrCreate()

但是这个:

df = spark.read.format("com.mongodb.spark.sql.DefaultSource").option("uri","mongodb://127.0.0.1/people.contacts").load()

给了我一个错误:

Py4JJavaError: An error occurred while calling o326.load.
: java.lang.NoClassDefFoundError: com/mongodb/ConnectionString
    at com.mongodb.spark.config.MongoCompanionConfig$$anonfun$4.apply(MongoCompanionConfig.scala:278)
    at com.mongodb.spark.config.MongoCompanionConfig$$anonfun$4.apply(MongoCompanionConfig.scala:278)

从网上的所有教程来看,我们还不清楚我们是否可以在运行时上传包,即使spark doc似乎有可能也是如此。

这些例子严重依赖于psark-submit“。但我自己使用的是jupyter笔记本,没有包含火花=>我通过”findspark“函数加载它,然后声明我的上下文。

0 个答案:

没有答案