如何在 AWS Glue 中使用 Spark 包?

2024-04-29

我想使用 DatastaxSpark-Cassandra-连接器 https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.12/2.5.1在 AWS Glue 中。如果我在本地运行 pyspark,我的命令将如下所示

path/to/spark-3.0.1-bin-hadoop2.7/bin/spark-submit \
--conf spark.cassandra.connection.host=XXX \
--conf spark.cassandra.auth.username=XXX \
--conf spark.cassandra.auth.password=XXX \
--packages com.datastax.spark:spark-cassandra-connector_2.12:2.5.1 \
~/my_script.py

如何在 Glue 中运行这个脚本?


我尝试过的事情

  • 如何在 AWS Glue 中导入 Spark 包? https://stackoverflow.com/questions/53382166/how-to-import-spark-packages-in-aws-glue它看起来和我的问题很相似。接受的答案谈到添加压缩的 python 模块作为参数。但是spark-cassandra-connector不是 python 模块。

  • (according to @alex's comment) put the SCC assembly in the Glue job's Jar lib path enter image description here

Error:

    File "/tmp/delta_on_s3_spark.py", line 75, in _write_df_to_cassandra
    df.write.format(format_).mode('append').options(table=table, keyspace=keyspace).save()
  File "/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 732, in save
    self._jwrite.save()
  File "/opt/amazon/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 63, in deco
    return f(*a, **kw)
  File "/opt/amazon/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value
    format(target_id, ".", name), value)
py4j.protocol.Py4JJavaError: An error occurred while calling o84.save.
: java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
    at com.datastax.spark.connector.TableRef.<init>(TableRef.scala:4)
    at org.apache.spark.sql.cassandra.DefaultSource$.TableRefAndOptions(DefaultSource.scala:142)
    at org.apache.spark.sql.cassandra.DefaultSource.createRelation(DefaultSource.scala:83)
......
  • (根据@alex的评论)放spark.jars.packages = com.datastax.spark:spark-cassandra-connector_2.12:2.5.1在胶水工作中job parameter

Error:

  File "/tmp/delta_on_s3_spark.py", line 75, in _write_df_to_cassandra
    df.write.format(format_).mode('append').options(table=table, keyspace=keyspace).save()
  File "/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 732, in save
    self._jwrite.save()
  File "/opt/amazon/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 63, in deco
    return f(*a, **kw)
  File "/opt/amazon/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py", line 328, in get_return_value
    format(target_id, ".", name), value)
py4j.protocol.Py4JJavaError: An error occurred while calling o83.save.
: java.lang.ClassNotFoundException: Failed to find data source: org.apache.spark.sql.cassandra. Please find packages at http://spark.apache.org/third-party-projects.html
    at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:657)
    at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:245)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
......

推荐的方法是使用--packages or --conf spark.jars.packages与 Maven 坐标,因此 Spark 将正确提取 Spark Cassandra 连接器(Java 驱动程序等)使用的所有必要依赖项 - 如果您使用--jars仅使用 SCC jar,那么您的工作将会失败。

从SCC 2.5.1开始,还多了一个新神器——Spark-Cassandra-连接器组件 https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector-assembly其中包括所有必要的依赖项。有了它,您可以避免依赖冲突的问题,而且您可以将它与--jars或使用 Glue 作业的 Jar lib 路径。

附:对于 Spark 3.0,建议使用 SCC 3.0.0-beta,因为 Spark SQL 的内部发生了重大变化。

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

如何在 AWS Glue 中使用 Spark 包? 的相关文章

  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho
  • 从脚本内更改自动热键托盘图标

    如何从 Autohotkey 脚本中将托盘图标更改为 my ico 例如 当脚本暂停时 为此 我在托盘菜单中提出了自己的 暂停脚本 菜单项 SingleInstance ignore Menu Tray Tip AutoCase 0 11
  • 我们什么时候应该在 Django 中使用“db_index=True”?

    当我们应该定义db index True在模型字段上 我正在尝试优化应用程序并且我想了解更多信息db index 什么情况下我们应该使用它 文档说使用db index True在模型字段上用于加速查找 但在存储和内存方面略有缺点 我们应该使
  • 如何制作过期/签名视频嵌入网址

    我是新来的 正在学习网络开发等等 我只知道如何将我的视频嵌入网站中 任何菜鸟都可以轻松获得源代码 他们也可以嵌入它 但在许多网站中 视频 src 均使用重定向器链接进行编码 例如 它会在一段时间后过期 在本例中是一天 我了解到这是一个签名网
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code
  • 如何在 kubernetes 中将秘密标记为可选?

    来自文档 除非将秘密标记为可选 否则必须先创建秘密 然后再将其作为环境变量在 pod 中使用 引用不存在的 Secret 将阻止 pod 启动 如何将秘密标记为可选 您正在寻找的是 name ENV NAME valueFrom secre
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • View.post(),以及当Runnables被执行时

    我最初的问题是需要知道我的根的高度和宽度View这样我就可以进行程序化的布局更改 就我的目的而言 我不一定需要在onCreate 对于我来说 以编程方式添加我的孩子就足够了View根布局完成后 因此我很乐意使用onWindowFocusCh
  • Azure Functions 计时器触发器线程安全

    我想知道是否有人知道如果您在 Azure 函数上设置了 Cron 设置 如果其任务执行时间超过 5 分钟 则每 5 分钟运行一次 会发生什么情况 它备份吗 或者我应该实现一个锁定功能 以防止某些东西 例如在循环中 处理先前调用已经处理的数据
  • svn 强制迁移

    我正在考虑将我们的 svn 代码库迁移到 perforce 看看谷歌搜索结果 我确实找到了两个具有相同功能的工具 P4转换ftp ftp perforce com pub perforce tools p4convert docs inde
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • PLS-00103:遇到符号“;”当预期出现以下情况之一时:

    我正在尝试插入用户安全问题的答案 以用于密码重置功能 Ellucian 横幅 v8 提供了一个用于运行此 API 的 API 我对他们的 API 非常陌生 从下面的错误消息来看 我还远远没有正确运行它 任何帮助表示赞赏 我尝试在 Oracl
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private
  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字

随机推荐

  • 将 C# 参数传递给 JS

    我有一个 C MVC 项目 我想每隔 X 秒刷新一次页面 我将代码放入cshtml文件中 但我需要从 C 中获取 X 假设它是 ViewBag Seconds 我怎样才能做到这一点 Razor 不关心它是输出 HTML 还是 javascr
  • 我需要从带有数据页的页面在组件中运行函数

    我有一个用于绘制图形或树的组件 并且我在页面中使用此组件 我的 axios 在页面上并提供数据 我需要将数据传递给组件的函数 然后从页面数据中绘制我的树 My Page
  • 检测 USB 连接 -- C# .Net CF 3.5

    我有一个在 Windows Mobile 6 1 设备上运行的应用程序 Net Compact Framework 3 5 我想检测 USB 连接何时发生变化 连接或断开连接 我最初使用的是SystemProperty CradlePres
  • 通过 ant 构建脚本将命令行参数传递给 Java

    运行以下命令时 ant targetname Dk1 v1 Dk2 v2 我想要将命令行参数传递给java like java whatever Dk1 v1 Dk2 v2 我需要从 Java 代码访问这些参数System getPrope
  • 当线程无法访问所有已用堆时查找 Java 内存泄漏

    我正在研究基于 Java 的大型系统中潜在的内存泄漏 或至少是内存浪费 JVM 运行时的最大堆大小为 5 GB 2 3GB 堆使用量是应用程序的预期基准 可能会有更高的峰值 在我正在调查的过载场景中 堆被填满 使用 Eclipse Memo
  • 如何在 Pygame 中制作边框

    我试图让游戏的某个区域周围有边框 并使用一种尺寸来不断更改我的代码 以便它适用于一种尺寸 这是代码 screen xpos ypos height width border width color def draw borders s x
  • H2O R 中的子集化

    我有一个 h2o 对象 子集的标准 R sub1 lt trans trans Type 1 我在水中也尝试过同样的方法 它不工作 sub1 lt trans trans Type 1 我也尝试过 sub1 lt h2o exec tran
  • ViewPager 具有不同的纵向和横向适配器

    在纵向模式下 我的ViewPager有 3 个片段 A B C 但在横向模式下 它只有 2 个片段 A 和 C 所以我创建了 2 个FragmentStatePagerAdapters 代表每种模式 问题是当屏幕方向改变时 ViewPage
  • 我可以将 Selenium WebDriver 与 Google Cloud Functions 结合使用吗?

    我正在尝试使用 Selenium 构建解决方案 我可以使用 Firebase Functions 通过 Selenium 初始化和加载网页吗 我发现一些资源说 不 然而他们没有给出任何来源 而且他们已经4岁了 在 Cloud Functio
  • nuget 创建两个包文件夹?

    OK 所以我最近重新安装了Windows 10并升级了vs2013 gt vs2015 此时我试图获取几个 nuget 包 我遇到的问题是 我有一个 nuget packages 文件夹 其级别与我的解决方案文件 通过 NuGet conf
  • 如何使用 C# 更新 Active Directory 属性。

    如何使用 C 更新 Active Directory 属性 就我而言 我有以下情况 对于每个用户都有一个WhenCreatedAD 中的属性 但我想要的是 如果whenDate设置的时间少于 30 天info归因于NEW在活动目录中 我怎样
  • uWSGI重启时停机

    每次当我有代码更新时重新启动服务器时 我都会遇到 uwsgi 问题 当我使用 sudo restart account 重新启动 uwsgi 时 停止和启动实例之间存在一个小间隙 导致停机并停止所有当前请求 当我尝试 sudo reload
  • UIAlertController 的警报无法关闭它

    我正在创建警报 但当用户按 确定 时无法将其关闭 我收到以下错误 2017 12 28 07 03 50 301947 0400 Prestamo 691 215874 API 错误 返回 0 宽度 假设 UIViewNoIntrinsic
  • 龙卷风网络和线程

    我是 Tornado 和 Python 线程的新手 我想要实现的目标如下 我有一个龙卷风网络服务器 它接受用户的请求 我想在本地存储一些数据 并定期将其作为批量插入写入数据库 import tornado ioloop import tor
  • 跨浏览器可拉伸圆角,具有语义代码和最少的图像使用。是否可以?

    我知道如果没有 Javascript 或图像 IE 不可能制作圆角 如果禁用 js JS 解决方案将无法工作 所以我想使用图像选项 我需要任何图像 css解决方案来使跨浏览器兼容圆角divminimal 容易制作和纯粹的semantic a
  • C++ Redistributable 14 与 VS2017 C++ Redistributable 冲突

    我重建了一台笔记本电脑 并在此过程中安装了 VS2017 其中包括安装 C 2017 Redistributable x64 14 10 24728 我尝试安装其他使用 C Redist 14 的应用程序 但它们失败并显示错误消息 该产品的
  • 为什么内联声明不是不完整类型?

    考虑下面的代码 struct Foo struct Bar Foo Bar bar Why isn t Bar an incomplete type struct Bar Full definition struct Bar fails t
  • 在heroku上部署git子目录

    我必须从非主分支部署 git 子目录 我看过这个答案 https stackoverflow com questions 7539382 how can i deploy from a git subdirectory and to Her
  • BackupAgent:“无法恢复包...”

    我已经实现了 BackupAgent 如下所述数据备份 http developer android com guide topics data backup html 注册了一个 API 密钥并在我的 Manifest 中声明了 Back
  • 如何在 AWS Glue 中使用 Spark 包?

    我想使用 DatastaxSpark Cassandra 连接器 https mvnrepository com artifact com datastax spark spark cassandra connector 2 12 2 5