无法通过 Spark 连接到 Mongo DB

2023-11-30

我正在尝试通过 Apache Spark master 从 Mongo DB 读取数据。

我为此使用了 3 台机器:

  • M1 - 上面有一个 Mongodb 实例
  • M2 - 带有 Spark Master,带有 Mongo 连接器,在其上运行
  • M3 - 带有连接到 M2 的 Spark master 的 python 应用程序

应用程序(M3)正在像这样连接到 Spark Master:

_sparkSession = SparkSession.builder.master(masterPath).appName(appName)\
.config("spark.mongodb.input.uri", "mongodb://10.0.3.150/db1.data.coll")\
.config("spark.mongodb.output.uri", "mongodb://10.0.3.150/db1.data.coll").getOrCreate()

应用程序(M3)正在尝试从数据库读取数据:

sqlContext = SQLContext(_sparkSession.sparkContext)
        df = sqlContext.read.format("com.mongodb.spark.sql.DefaultSource").option("uri","mongodb://user:pa[email protected]/db1.data?readPreference=primaryPreferred").load()

但因以下异常而失败:

    py4j.protocol.Py4JJavaError: An error occurred while calling o56.load.
: java.lang.ClassNotFoundException: Failed to find data source: com.mongodb.spark.sql.DefaultSource. Please find packages at http://spark.apache.org/third-party-projects.html
        at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:594)
        at org.apache.spark.sql.execution.datasources.DataSource.providingClass$lzycompute(DataSource.scala:86)
        at org.apache.spark.sql.execution.datasources.DataSource.providingClass(DataSource.scala:86)
        at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:325)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:125)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
        at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
        at py4j.Gateway.invoke(Gateway.java:280)
        at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
        at py4j.commands.CallCommand.execute(CallCommand.java:79)
        at py4j.GatewayConnection.run(GatewayConnection.java:214)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.mongodb.spark.sql.DefaultSource.DefaultSource
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25$$anonfun$apply$13.apply(DataSource.scala:579)
        at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25$$anonfun$apply$13.apply(DataSource.scala:579)
        at scala.util.Try$.apply(Try.scala:192)
        at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25.apply(DataSource.scala:579)
        at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25.apply(DataSource.scala:579)
        at scala.util.Try.orElse(Try.scala:84)
        at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:579)
        ... 16 more

Spark 找不到com.mongodb.spark.sql.DefaultSource包,因此出现错误消息。

一切,其他看起来都不错,只需要包含 Mongo Spark 包:

> $SPARK_HOME/bin/pyspark --packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.0

或者确保 jar 文件位于正确的路径上。

确保检查您的 Spark 版本所需的 Mongo-Spark 包的版本:https://spark-packages.org/package/mongodb/mongo-spark

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法通过 Spark 连接到 Mongo DB 的相关文章

  • spacy 是否将令牌列表作为输入?

    我想使用 spacy 的 POS 标记 NER 和依存解析 而不使用单词标记化 事实上 我的输入是代表一个句子的标记列表 我想尊重用户的标记化 无论是使用 spacy 还是任何其他 NLP 包 这是否可能 现在 我使用这个基于 spacy
  • Java MongoDB 获取子文档的值

    我试图从子文档中获取键的值 但我似乎无法弄清楚如何使用 BasicDBObject get 函数 因为键嵌入了两层深度 这是文档的结构 File name file 1 report name report 1 group RnD 基本上一
  • 无法连接到服务器 127.0.0.1:27017 连接尝试失败 MongoDB

    我正在使用 Ubuntu 操作系统 16 04 我正在使用命令启动 mongodb sudo service mongod start进而mongo 它为我生成了这个错误 MongoDB shell version v4 0 1 conne
  • numpy.polyfit 给出有用的拟合,但协方差矩阵无限

    我正在尝试将多项式拟合到一组数据 有时可能会出现以下情况 返回的协方差矩阵numpy ployfit仅由inf 尽管拟合似乎很有用 没有numpy inf或数据中的 numpy nan Example import numpy as np
  • 如何从数组中删除重复的条目?

    在下面的示例中 Algorithms in C 出现两次 The unset修饰符可以删除特定字段 但如何从字段中删除条目 id ObjectId 4f6cd3c47156522f4f45b26f favorites books Algor
  • Mongodb 数据库上的 SASL 身份验证失败

    我在尝试使用 PHP Mongodb 驱动程序连接到 Mongodb 时遇到问题 实际上我有一个名为 LRS 的数据库 它有一个名为 juano 的用户 在我的设置文件中带有密码 12345 我确信我编写了正确的配置 但是当我在 Larav
  • MongoDB,从数组中删除对象

    Doc id 5150a1199fac0e6910000002 name some name items id 23 name item name 23 id 24 name item name 24 有没有办法从数组中提取特定对象 IE
  • 使用 scala 从 Spark 中的数组数组中的结构中提取值

    我正在使用 scala 将 json 数据读入 Spark 数据帧 架构如下 root metadata array nullable true element struct containsNull true playerId strin
  • 包装一个类,其方法返回该类的实例

    我需要编写一个类来包装第三方包中的类 通常 第三方类具有返回第三方类实例的方法 这些方法的包装版本必须将这些实例转换为包装类的实例 但我无法使其工作 我正在使用 Python 2 7 和新式类 基于创建一个包装类来围绕现有函数调用前置和后置
  • 如何捕获 Oozie Spark 输出

    有没有办法捕获spark的输出然后将其输入到shell上 我们当前正在使用 scala 创建 jar 文件 并希望我们的 Spark 输出成为 shell 输入 我的想法是使用 wf actionData spark XXXX var 我只
  • 不支持的身份验证令牌,仅当禁用身份验证时才允许 schema='none':{ schema='none' } - Neo4j 身份验证错误

    我正在尝试使用 neo4j spark connector 从 Spark 连接到 Neo4j 当我尝试连接到 Neo4j 时遇到身份验证问题org neo4j driver v1 exceptions AuthenticationExce
  • 任务和分区之间有什么关系?

    我能说 么 Spark任务的数量等于Spark分区的数量吗 执行器运行一次 执行器内部的批处理 等于一个任务吗 每个任务只产生一个分区 1 的重复 并行度或可以同时运行的任务数量由以下公式设置 Executor实例的数量 配置 每个执行器的
  • Mongodb 聚合数组中的子文档

    我正在使用 mongodb 作为后端实现一个小型应用程序 在此应用程序中 我有一个数据结构 其中文档将包含一个包含子文档数组的字段 我使用以下用例作为基础 http docs mongodb org manual use cases inv
  • PySpark Yarn 应用程序在 groupBy 上失败

    我正在尝试在 Yarn 模式下运行一个处理大量数据的作业 2TB 从谷歌云存储读取 管道可以总结如下 sc textFile gs path json map lambda row json loads row map toKvPair g
  • 检测计算机何时解锁 Windows

    我用过这个优秀的方法 https stackoverflow com questions 20733441 lock windows workstation using python 20733443锁定 Windows 计算机 那部分工作
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键

随机推荐

  • 在 Pyspark HiveContext 中,SQL OFFSET 相当于什么?

    或者一个更具体的问题是如何处理无法立即装入内存的大量数据 使用 OFFSET 我尝试执行 hiveContext sql select limit 10 offset 10 同时增加 offset 以获取所有数据 但 offset 在 hi
  • 使用“导出”从 SVN 发布,然后?如何升级?

    使用 SVN 我正在考虑使用 SVN 导出命令将第一个版本 版本 1 0 发布到生产服务器 升级的下一步是什么 例如 如果我想发布下一个版本 1 1 应该如何完成 有没有办法在不删除所有文件的情况下直接从标签升级 一般发布步骤 创建标签来自
  • 如何使用 Selenium RC 保存和恢复所有 cookie?

    我正在运行复杂的测试 为网站的不同部分创建许多 cookie 有时 我必须在长时间测试中重新启动浏览器 并且由于 Selenium 服务器不会修改基本 Firefox 配置文件 因此 cookie 会消失 有什么方法可以在终止浏览器之前将所
  • List 不是 List

    我有一个 Cloud Firebase 数据库 其中包含questions收藏 每个question有一个地图列表options 我正在使用 Flutter 并有以下课程question and option class Question
  • 如何使用 JavaScript 停止文件上传事件

    当我上传的文件超过 5mb 或者我的文件扩展名不是时 我想停止文件上传事件 jpg or png 我找到了一个代码 但是当我尝试上传无效的文件类型时 它只会提醒我上传了错误的文件 但不会取消该事件 这是代码
  • pxssh 抛出文件结尾 (EOF)。异常样式平台异常

    我在使用 pxssh 模块时遇到问题 我的代码如下 try ssh handle pxssh pxssh timeout None ssh handle logfile sys stdout ssh handle login host us
  • Kotlin函数用于获取子字符串的开始和结束索引

    我想知道是否有一些方法或方法组合可以获得这些结果 我的意思是你有一个字符串 ex Hello world how are you 我想实现以下功能 获取子字符串的开始和结束索引 在那根弦里 前任 substring world 起始索引为
  • 如何对小数位进行分组?

    我想要得到x 1 234 567 890 098 765 432 1 include
  • 更改 Chrome 状态栏中显示的 URL

    当我将鼠标悬停在 Chrome 中的某个网址上时 该网址会显示在 Chrome 状态栏中 就我而言 这会导致丑陋的 javascript bla bla bla 引用 当您将鼠标悬停在链接上时 有什么方法可以更改状态栏的内容吗 Thanks
  • 如何设置静态资源的依赖属性?

    我试图解决我无法指定动态值的事实ConverterParameter 请参阅我的其他问题 了解为什么我需要将动态值绑定到ConverterParameter 我不喜欢当前发布的解决方案 因为它们都需要我认为对我的视图模型进行不必要的更改 为
  • Tumblr 音频播放器无法通过无限滚动加载

    我在这个 tumblr 上实现了无限滚动和砌体 检查链接的修订版 音频播放器不会出现在通过无限滚动加载的帖子中 而是显示文本 需要 Flash 9 才能收听音频 Inspire Well tumblr 主题 我无法发布另一个超链接 但你可以
  • KnpMenuBundle - 发送选项并在 Twig 中使用它们

    我在 KnpMenuBundle 的导航栏菜单上写下了最后几天的内容 我只想简单地给模板一些参数 然后对其做出反应 是否可以 我试过这个 menu gt addChild Registration array route gt fos us
  • 如何在Python中替换列表中的单引号

    我有一个清单 my list 3 45 12 6 该列表包含单引号和双引号以及项目值 如何替换每个项目中的单引号或双引号 我尝试了下面 但结果是一样的 my list i replace for i in my list 您的列表不包含任何
  • 在 C++ 中,表达式“*pointer++”如何工作? [复制]

    这个问题在这里已经有答案了 include
  • htaccess自动检测域名

    我制作了自动创建子域的脚本 htaccess 工作正常 但问题是 在新域上安装时我需要手动更改域名 我想在htaccess中自动检测域名 可以吗 因此 当添加另一台服务器或新域时 无需再次更改域根htaccess 域根 htaccess 是
  • 类型错误:EventEmitter 不是新 MapboxGeocoder 的构造函数

    使用Vue 3 typescript vite 已经用Vite Vue 3 typescript搭建了项目 使用谷歌地图时遇到麻烦 因为它需要付费 然后尝试了 Mapbox 地图部分工作正常 但在添加 MapboxGeocoder 时显示错
  • iOS 快速发布请求

    所以我想创建一个具有以下输出的发布请求 user gt email gt email protected password gt FILTERED password confirmation gt FILTERED 相反 我得到 user
  • PHP:“遇到格式不正确的数值”

  • Google App Engine JDO 使持久延迟

    我的 Google App Engine JDO 实现存在问题 我无法弄清楚 文档 http code google com intl sv SE appengine docs java datastore jdo creatinggett
  • 无法通过 Spark 连接到 Mongo DB

    我正在尝试通过 Apache Spark master 从 Mongo DB 读取数据 我为此使用了 3 台机器 M1 上面有一个 Mongodb 实例 M2 带有 Spark Master 带有 Mongo 连接器 在其上运行 M3 带有