amazon-web-services - AWS Glue 表丢失 - Pyspark 错误 Py4JJavaError(保存表时出错)
问题描述
我对特定的胶水表(我以前从未见过的东西)有一个不寻常的行为,在这种情况下,它是由火花作业创建的表(带有气流的时间表)。
基本上,该作业包括从数据仓库中提取单个表并写入 s3/glue 中的表,覆盖现有分区(保存模式为覆盖)。由于某种原因,这项工作今天失败了,这是引发的异常。
py4j.protocol.Py4JJavaError: An error occurred while calling o108.saveAsTable.
java.lang.AssertionError: assertion failed: Expect the table customer_cdr has been dropped when the save mode is Overwrite
at scala.Predef$.assert(Predef.scala:170)
at org.apache.spark.sql.execution.command.CreateDataSourceTableAsSelectCommand.run(createDataSourceTables.scala:155)
at org.apache.spark.sql.execution.command.DataWritingCommandExec.sideEffectResult$lzycompute(commands.scala:104)
at org.apache.spark.sql.execution.command.DataWritingCommandExec.sideEffectResult(commands.scala:102)
起初,我和我的同事认为这只是 Spark 的 EMR 集群错误,然后重置集群即可解决。但后来我们看到了更奇怪的东西。
事件发生后,该表已从目录中消失(在胶水控制台中不可见,在 athena 中不可见)。但这里有问题!桌子还在那里,但被隐藏了。我们无法从搜索工具中的粘合 IDE 中看到它,但我们可以通过替换 url 中的表名从控制台访问,从 Athena 查询数据,甚至可以使用 get-table 命令从 cli 中列出表。
我们尝试删除表(控制台或 cli),但遇到以下问题:
An error occurred (EntityNotFoundException) when calling the DeleteTable operation: Table (v_ntfm_merchantlogstatus) not found
几乎是如果表从湖层中移除。现在,问题是:你们有没有遇到过这样的问题,是它的调试过程吗?谢谢!
解决方案
如果每个人都发现了一个奇怪的问题,AWS 报告说胶水有一个不寻常的行为导致表格“消失”(因为表格仍然存在而消失,对于我们的角色用户组来说,它是不可见的,仅对给定帐户的管理员或 root 用户可见)。
那么,在这种情况下应该怎么做呢?在这种特殊情况下,需要联系 AWS 来解决事件(唯一可能的途径)。
干杯,
推荐阅读
- javascript - 关于如何实现计时器功能的任何帮助或想法
- java - 为什么当我使用带有某些参数的 Mockito 抛出 SqlException 时无法识别?
- python - 为什么它打印出不同的名称?在 Django
- java - 抛出 ClassNotFoundException
- bash - QProcess来自concole的不同输出
- node.js - Vercel 不显示 expressjs 静态文件
- mysql - 在 Django 中用 MySQL 数据库替换 SQLite 数据库
- mongodb - 有没有人能够在 cosmos mongodb 上使用带有日期字段的 ttl?
- python - 如何使用 replit 在 pygame 中显示字体
- cuda - CUDA 异步内存复制 - 哪个硬件设备执行内存复制操作?