【问题标题】:Dataflow ReadFromMongoDB fails with dependency error数据流 ReadFromMongoDB 因依赖错误而失败
【发布时间】:2021-05-07 15:11:42
【问题描述】:

我已经编写了从 mongodb 集合中读取数据并将其写入 gcs 存储桶的 pyton 代码。

我的数据流管道如下:

    p 
    | ReadFromMongoDB(uri='mongodb+srv://mongo_url',db='db_name',coll='column_name',bucket_auto=True) 
    | "WriteMyFile" >> beam.io.WriteToText('gs://bucket_name/file123.json')         
    p.run()

我的数据流管道失败并出现以下错误:

pymongo.errors.ConfigurationError: The "dnspython" module must be installed to use mongodb+srv:// URIs

根据this 文档,pymongo(解决 dnspython 问题所需的依赖项)已安装在数据流工作程序中。还需要做什么?

【问题讨论】:

    标签: python-3.x mongodb google-cloud-platform google-cloud-dataflow apache-beam


    【解决方案1】:

    这可能是因为 dataflow worker 只安装了 pymongo 的基本要求。并且 dnspython 包含在 pymongo 额外依赖项中,因此您必须使用 pymongo[srv] 作为依赖项来解析 dnspython 模块。您可以尝试在您的 requirements.txt 中包含 pymongo[srv]== ,然后使用--requirements_file 标志提交管道,它将使数据流工作者在容器启动时安装所需的python依赖项。

    【讨论】:

      猜你喜欢
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2021-09-08
      • 2013-10-25
      • 1970-01-01
      相关资源
      最近更新 更多