问题标签 [aws-glue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4075 浏览

amazon-s3 - AWS Glue 作业未写入 S3

我刚刚在玩 Glue,但还没有让它成功地在现有的 S3 存储桶中创建一个新表。该作业将毫无错误地执行,但 S3 中永远不会有任何输出。

以下是自动生成的代码:

已经尝试了所有变体 - 文件名(尚不存在),在存储桶的根文件夹中,尾部斜杠和没有。正在使用的角色对 S3 具有完全访问权限。尝试在不同区域创建存储桶。虽然没有创建任何文件。再次控制台说它成功了。

0 投票
1 回答
1263 浏览

amazon-web-services - AWS Glue Crawler 覆盖自定义表属性

我有一个由 AWS Glue 管理的数据目录,以及我的开发人员在我们的 S3 存储桶中使用新表或分区进行的任何更新,我们每天都使用爬虫进行更新以保持新分区的健康。

但是,我们还需要自定义表格属性。在我们的 hive 中,我们将每个表的数据源作为表属性,我们在胶水中添加到数据目录中的表,但是每次运行爬虫时,它都会覆盖自定义表属性,如描述。

我做错什么了吗?或者这是来自 AWS Glue 的错误?

0 投票
3 回答
10993 浏览

python - glue job for redshift connection: "Unable to find suitable security group"

I'm trying to set up a AWS Glue job and make a connection to Redshift.

I'm getting error when I set the connection type to Redshift:

"Unable to find a suitable security group. Change connection type to JDBC and retry adding your connection."

Following what was said here in these forums, I added permissions to my IAM account for role AWSGlueServiceRoleDefault:

enter image description here

I then set up the job with the matching IAM role AWSGlueServiceRoleDefault:

enter image description here

I need to store the Glue data in Redshift DB, so I chose JDBC then added a connection:

enter image description here

As soon as I choose Redshift, it complains that it cannot find a suitable security group. Why is this?

enter image description here

enter image description here

0 投票
1 回答
1085 浏览

apache-spark - Spark SQL:空值在结果文件中被转换为空字符串

我在 AWS Glue 中编写了一个脚本,用于从 AWS S3 读取 CSV 文件,对几个字段应用空检查并将结果作为新文件存储回 S3。问题是当它遇到 String 类型的字段时,如果值为 null,它将被转换为空字符串。但我不希望这种转换发生。对于所有其他数据类型,它工作正常。

这是到目前为止编写的脚本:

谁能建议如何摆脱这个问题?

谢谢。

0 投票
1 回答
480 浏览

amazon-web-services - EMR 集群中的 Zeppelin 未列出 AWS 胶水中的目录表

我想使用 AWS Glue 数据目录作为 Spark SQL 的元存储。我已经按照此处的说明通过 AWS 控制台启动了 EMR 集群。

我可以从 spark-shell 中看到所有 Glue 目录表,但不能从 Zeppelin 中看到。

Zeppelin 属性配置中是否需要设置任何属性?

提前致谢。

0 投票
1 回答
2593 浏览

amazon-web-services - AWS Glue:如何减少 ETL 作业的 DPU 数量

关于定价的 AWS Glue 文档如下:

Glue ETL 作业至少需要 2 个 DPU。默认情况下,AWS Glue 为每个 ETL 作业分配 10 个 DPU。您需要为每个 DPU 小时支付 0.44 美元的费用,增量为 1 分钟,四舍五入到最接近的分钟,每个 ETL 作业的最短持续时间为 10 分钟。

我想减少分配给我的 ETL 作业的 DPU 数量。我在 Glue 控制台中搜索了此选​​项。但我没找到。你能告诉我我该怎么做吗?

谢谢

0 投票
1 回答
6587 浏览

amazon-web-services - 创建到 MS SQL Server RDS 的胶水连接时出现问题

我在这里阅读了所有已回答的问题,其中 5 个。而且它们现在都已经过时了可用的 AWS 产品。

因此,作为 AWS 的新手,我想知道如何解决我的问题,或者仅使用 AWS 解决方案来解决我的问题的最佳方法是什么。我想避免任何第三方。我知道我将引用我在谷歌上搜索的一种方法,但只是参考它。

无论如何,我有一个目标要实现,这基本上是用仅使用 AWS 产品的东西替换我的 SQL Server 2012 集成服务。现在我正在访问一个 FTP 服务器并将一堆 CSV 文件下载到我的驱动器,读取它们,将它们转换为我的数据集并将它们加载到我指定的表中。此过程计划每天执行 3 次。

我最初的建议是将文件上传到 S3,使用 AWS Glue Crawlers 来抓取我的文件并填充我自己创建的 AWS Glue 数据目录,它们 ETL 到我的 RDS。到目前为止,我可以实现我的 Lambda 函数来连接我的 FTP 并上传到我的 S3,我还可以使用 AWS Athena 检索我的数据,看看是否一切正常。

但是现在,我正在努力将我的 ETL 复制/创建我的表到 RDS 并写入数据。我在同一个 RDS VPC、子网和安全组下创建了我的胶水连接,我的安全组也有来自任何地方的所有 TCP 入站(我知道,我不会离开这个,它只是为了测试)并且我正在使用 JDBC,编写以下 JDBC URL:

我可以使用 AWS Glue 中的“测试连接”来测试我创建的连接,并且效果很好。但是在使用 Job 教程创建我的 Job 并运行它之后,在我的日志错误中我可以看到:

我尝试使用Amazon RDS选项创建连接,但在选择实例后的第二个屏幕上,我收到以下错误:

我检查了我的 IAM,我确实在AWS 服务中拥有AWSGlueServiceRoleDefault角色:如文档中所述,为 AWS 托管策略粘合可信服务和AWSGlueServiceRole

我想知道我缺少什么或如何修复它以使其正常工作。或者即使有更好的方法来实现我的目标。

0 投票
3 回答
611 浏览

python - 在 AWS Glue 中使用纯 python 外部库时 HDFS 中的权限错误

我尝试在 AWS Glue 上运行导入外部纯 Python 库 (psycopg2) 的自定义 Python 脚本,但失败了。我查看了 CloudWatch 日志,发现失败的原因是:

Spark 未能对 HDFS 中的多个文件夹进行权限检查,其中一个包含我上传到 S3 (s3://path/to/psycopg2) 的外部 python 库,它需要 -x 权限:

我确保该库仅包含 AWS 文档中说明的 .py 文件。

有谁知道出了什么问题?

非常感谢!

0 投票
3 回答
5260 浏览

amazon-web-services - 从 aws Glue 脚本调用存储过程

ETL 作业完成后,在 AWS Glue 脚本中调用存储过程的最佳方法是什么?

我正在使用 PySpark 从 S3 获取数据并存储在临时表中。在这个过程之后,需要调用一个存储过程。此存储过程将数据从临时表加载到适当的 MDS 表中。

如果我必须在 ETL 作业完成后调用存储过程,最好的方法是什么?如果我考虑 AWS lambda,有什么方法可以在 ETL 之后通知 lambda。

0 投票
1 回答
1618 浏览

apache-spark - 使用 Amazon Glue 将一行转换为多行

我正在尝试使用 Amazon Glue 将一行变成多行。我的目标是类似于 SQL UNPIVOT。

我有一个 360GB 的管道分隔文本文件,压缩 (gzip)。它有超过 1,620 列。这是基本布局:

这些属性名称/值字段有 800 多个。大约有 2.8 亿行。该文件位于 S3 存储桶中。我需要将数据导入 Redshift,但 Redshift 中的列限制为 1,600。

用户希望我取消数据透视。例如:

我相信我可以为此使用 Amazon Glue。但是,这是我第一次使用 Glue。我正在努力寻找一个好的方法来做到这一点。一些 pySpark 扩展转换看起来很有希望(可能是“映射”或“关系化”)。请参阅http://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-etl-scripts-pyspark-transforms.html。所以,我的问题是:在 Glue 中执行此操作的好方法是什么?

谢谢。