问题标签 [aws-glue-spark]

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 投票
1 回答
561 浏览

amazon-web-services - 胶水作业模式推理问题

要求:我需要一个胶水作业来将 aws-dynamodb(地图和列表的嵌套结构组合)数据放入 s3。

我的方法:首先,我使用胶水动态框架将 dynamodb 中的所有数据放入一个动态框架中。

使用它后,我得到了datasource包含所有数据的动态框架。

在这里我想做一些转换并想要执行一些过滤器,所以这就是我使用 pyspark 数据框概念的原因。

我的输入数据框df0包含 struct 格式的 json 数据collection,所以我曾经to_json将 struct 转换为 json-string。在这里我需要 json 字符串而不是结构。

df1,我正在访问我想要的任何东西。

主要问题

集合中存在的一些属性看起来像这样

如果您看到上面的示例pricereatiler, categories, 数据类型将显示为嵌套属性。

我想要这样的输出

我该如何解决这个问题,请告诉我

0 投票
1 回答
1141 浏览

amazon-web-services - 在 Glue 中使用 ResolveChoice

我能够创建一个小型粘合作业,将数据从一个 S3 存储桶提取到另一个存储桶中,但不清楚代码中的最后几行(如下)。

  1. 从上面的代码片段中,'ResolveChoice' 有什么用?是强制性的吗?
  2. 当我运行此作业时,它在目标(order_summary.csv)中创建了一个新文件夹和文件(带有一些随机文件名)并摄取数据而不是直接摄取到驻留在 S3 文件夹中的 order_summary_csv 表(一个 CSV 文件)中. spark(Glue) 是否可以将数据摄取到所需的 CSV 文件中?
0 投票
0 回答
468 浏览

amazon-web-services - Spark AWS Glue UI - 错误:无法找到或加载主类 $SPARK_HISTORY_OPTS - Windows Docker

参考 - https://github.com/aws-samples/aws-glue-samples/tree/master/utilities/Spark_UI/ https://docs.aws.amazon.com/glue/latest/dg/monitor-spark- ui-history.html

我正在尝试使用 docker 容器在我的 Windows 10(docker 桌面)上本地访问胶水火花 ui。

我已按照以下步骤操作,但在启动容器时出现错误

0 投票
1 回答
1275 浏览

amazon-web-services - 如何使用 AWS Glue 合并 S3 存储桶中的 CSV 文件并将其保存回 S3

目标是将数据(csv 文件)从一个 S3 存储桶转换到另一个 S3 存储桶 - 使用 Glue。

我已经尝试过的:

我创建了一个 CSV 分类器。我创建了一个爬虫来扫描 S3 存储桶中的数据。我被困在哪里:

无法找到如何将输出再次存储在 S3 中而不将其保存在任何 RDS 或其他数据库服务中。因为胶水输出要求数据库输出,我没有也不想使用。

有什么方法可以在不使用任何其他数据库系统的情况下实现目标,只是简单的 - S3,Glue?

更多信息示例单个 CSV 文件,我正在尝试合并

在此处输入图像描述

分隔符为“;”的分类器

在此处输入图像描述

爬虫配置

在此处输入图像描述

爬虫结果(未检测到架构)

在此处输入图像描述

0 投票
0 回答
281 浏览

python-3.x - 运行 AWS Glue 作业时出现外部库错误

我已将外部 python 库 (*.whl) 放置在 S3 中,并通过在 AWS Glue Job 'Python library path' 参数中提及路径来访问相同的库。

它对于少数外部模块运行良好,但对于其他模块则失败,并出现以下错误:

任何建议将不胜感激。

0 投票
1 回答
829 浏览

python - 无法将 aws 胶水动态帧转换为火花数据帧

我正在尝试使用 Dynamicframe.toDF 将胶水动态帧转换为火花数据帧,但我遇到了这个异常

回溯(最后一次调用):文件“/tmp/ManualJOB”,第 62 行,在 df1 = datasource0.toDF() 文件“/opt/amazon/lib/python3.6/site-packages/awsglue/dynamicframe.py” ,第 147 行,在 toDF 中返回 DataFrame(self._jdf.toDF(self.glue_ctx._jvm.PythonUtils.toSeq(scala_options)), self.glue_ctx) 文件“/opt/amazon/spark/python/lib/py4j-0.10. 7-src.zip/py4j/java_gateway.py",第 1257 行,调用中 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) 文件“/opt/amazon/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py”,第 328 行,get_return_value 格式(target_id,“.”,名称) , value) py4j.protocol.Py4JJavaError: 调用 o176.toDF 时出错。:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 15.0 中的任务 1 失败 4 次,最近一次失败:阶段 15.0 中丢失任务 1.3(TID 198、172.31.0.175、执行程序 6):com.amazonaws .services.glue.util.FatalException:无法解析文件:手动绑定.csv

任何人都可以帮助我解决我所缺少的吗?

提前致谢!

0 投票
0 回答
564 浏览

csv - AWS Glue write_dynamic_frame_from_options 遇到架构异常

我是 Pyspark 和 AWS Glue 的新手,当我尝试使用 Glue 写出文件时遇到问题。当我尝试使用 Glue 的 write_dynamic_frame_from_options 将一些输出写入 s3 时,它会出现异常并说

似乎它说我的数据框的架构有 6 个字段,但 csv 有 7 个。我不明白它在说哪个 csv,因为我实际上是在尝试从数据框创建一个新的 csv ......对此有任何见解具体问题或 write_dynamic_frame_from_options 方法的一般工作原理将非常有帮助!

这是我工作中导致此问题的函数的源代码。

0 投票
1 回答
571 浏览

amazon-web-services - AWS Glue 的工作原理是什么?

我在 AWS Glue 上以 ETL 形式阅读了多篇文章。但我得到的不多。有人能用简单的话解释一下 AWS Glue 的工作原理吗?它创建了 ENI,但它有什么用?我在某处读到 AWS Glue 作业在 AWS Glue 私有子网中运行,这是真的吗?你能用架构图解释一下吗?还有为什么我们在创建 Glue 连接时需要提供 VPC?

0 投票
0 回答
775 浏览

amazon-web-services - AWS Glue:架构中未找到列“column_name”

我正在尝试在 AWS Glue 中创建 ETL 作业。用例如下:当在运行 ETL 作业后在一个源表中添加一列时,当我们尝试重新运行 etl 作业时,etl 作业失败,说找不到列(在目标表中)

如何启用 ETL 在目标表中创建该列。因为 ETL 已经有权在表不存在时创建表。

例子:

源表:

ETL 作业配置为加入它们两者,导致

在此之前,它可以完美运行。

现在,如果表 Y 得到如下修改

我重新运行爬虫(检测源列)

然后我重新运行 ETL 作业,它失败并显示以下错误消息

在架构中找不到列“column_5”

我该如何解决这个问题?

用胶水脚本更新:

0 投票
1 回答
203 浏览

apache-spark - AWS Glue:数据是否偏斜?

我在 AWS Glue 中有一份工作失败了:

调用 o567.pyWriteDynamicFrame 时出错。由于阶段故障而中止作业:阶段 31.0 中的任务 168 失败 4 次,最近一次失败:阶段 31.0 中丢失任务 168.3(TID 39474,ip-10-0-32-245.ec2.internal,执行程序 102):ExecutorLostFailure(执行程序 102 因其中一项正在运行的任务而退出)原因:容器因超出内存限制而被 YARN 杀死。使用了 22.2 GB 的 22 GB 物理内存。由于 YARN-4714,请考虑提高 spark.yarn.executor.memoryOverhead 或禁用 yarn.nodemanager.vmem-check-enabled。

主要信息是Container killed by YARN for exceeding memory limits. 22.2 GB of 22 GB physical memory used.

我已经将广播用于小型 dfs 和盐技术用于更大的表。

输入包含要处理的 75GB JSON 文件。

我对输入文件使用了 32MB 的分组:

输出文件写入 256 个分区:

在 AWS Glue 中,我使用 60 个 G.2X 执行器 = 60 x(8 个 vCPU、32 GB 内存、128 GB 磁盘)启动了该作业。

下面是表示此作业指标的图表。由此看来,数据看起来并没有歪斜……我错了吗?

欢迎任何关于成功运行的建议!

在此处输入图像描述