无法创建动态帧,在成功将MONGODB表爬网到AWS数据目录后



我成功创建了一个mongodb连接,我的连接测试成功,并且能够使用爬网程序在Glue Data Catalog中创建元数据。然而,当我使用下面的additional_options参数添加mongodb数据库名称和集合名称时,我会得到一个错误:

data_catalog_database = 'tinkerbell'data_catalog_table = 'tinkerbell_funds'glueContext.create_dynamic_frame_from_catalog(database = data_catalog_database,table_name = data_catalog_table,additional_options = {"database":"tinkerbell","collection":"funds"})

错误如下:遇到错误:调用o177.getDynamicFrame时出错。:java.lang.NoSuchMethodError:com.mongodb.internal.connection.DefaultClusterableServerFactory<init>(Lcom/mongodb/connection/ClusterId;Lcom/mingodb/connection/ColusterSettings;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/connection/ConnectionPoolSettings;Lcom/mongodb/connection/StreamFactory;Lcom/megodb/contension/StreamFactory;Lcom/mongodb/MongoCredential;LcomMongodb/event/CommandListener;Ljava/lang/String;Lcommongodb/MongoDriverInformation;Ljava/util/List;(V

当我在没有附加参数的情况下使用时

glueContext.create_dynamic_frame_from_catalog(database = data_catalog_database,table_name = data_catalog_table)

我得到以下错误:遇到错误:缺少集合名称。通过"spark.mongodb.input.uri"或"spark.mongodb.input.collection"属性Traceback(最后一次调用(设置:File"home/glue_user/aws glue-libs/PyGlue.zip/awsglue/context.py";,第179行,在create_dynamic_frame_from_catalog return source.getFrame(**kwargs(File"home/glue_user/aws glue-libs/PyGlue.zip/awsglue/data_source.py";,第36行,在getFrame jframe=self中_jsource.getDynamicFrame((文件"home/glue_user/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py";,第1305行,在呼叫应答中,self-gateway_client,self-target_id,self.name(文件"/home/glue_user/spark/python/pyspark/sql/utils.py";,第117行,在从None-pyspark.sql.utils.IllegalArgumentException转换的deco-rise中:缺少集合名称。通过"spark.mongodb.input.uri"或"spark.mongodb.input.collection"属性设置

有人能帮我正确地传递这些参数吗?

上面已经解释了我尝试了什么,但我希望使用目录表创建动态框架。

由于mongo期望与spark建立连接,并且需要输入和输出属性,因此您将收到该错误。

请参阅以下链接-https://www.mongodb.com/docs/spark-connector/master/python-api/#std-标签pyspark外壳

最新更新