问题标签 [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.
amazon-web-services - 胶水作业模式推理问题
要求:我需要一个胶水作业来将 aws-dynamodb(地图和列表的嵌套结构组合)数据放入 s3。
我的方法:首先,我使用胶水动态框架将 dynamodb 中的所有数据放入一个动态框架中。
使用它后,我得到了datasource
包含所有数据的动态框架。
在这里我想做一些转换并想要执行一些过滤器,所以这就是我使用 pyspark 数据框概念的原因。
我的输入数据框df0
包含 struct 格式的 json 数据collection
,所以我曾经to_json
将 struct 转换为 json-string。在这里我需要 json 字符串而不是结构。
从df1
,我正在访问我想要的任何东西。
主要问题
集合中存在的一些属性看起来像这样
如果您看到上面的示例price
,reatiler
, categories
, 数据类型将显示为嵌套属性。
我想要这样的输出
我该如何解决这个问题,请告诉我
amazon-web-services - 在 Glue 中使用 ResolveChoice
我能够创建一个小型粘合作业,将数据从一个 S3 存储桶提取到另一个存储桶中,但不清楚代码中的最后几行(如下)。
- 从上面的代码片段中,'ResolveChoice' 有什么用?是强制性的吗?
- 当我运行此作业时,它在目标(order_summary.csv)中创建了一个新文件夹和文件(带有一些随机文件名)并摄取数据而不是直接摄取到驻留在 S3 文件夹中的 order_summary_csv 表(一个 CSV 文件)中. spark(Glue) 是否可以将数据摄取到所需的 CSV 文件中?
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。
我已按照以下步骤操作,但在启动容器时出现错误
python-3.x - 运行 AWS Glue 作业时出现外部库错误
我已将外部 python 库 (*.whl) 放置在 S3 中,并通过在 AWS Glue Job 'Python library path' 参数中提及路径来访问相同的库。
它对于少数外部模块运行良好,但对于其他模块则失败,并出现以下错误:
任何建议将不胜感激。
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
任何人都可以帮助我解决我所缺少的吗?
提前致谢!
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 方法的一般工作原理将非常有帮助!
这是我工作中导致此问题的函数的源代码。
amazon-web-services - AWS Glue 的工作原理是什么?
我在 AWS Glue 上以 ETL 形式阅读了多篇文章。但我得到的不多。有人能用简单的话解释一下 AWS Glue 的工作原理吗?它创建了 ENI,但它有什么用?我在某处读到 AWS Glue 作业在 AWS Glue 私有子网中运行,这是真的吗?你能用架构图解释一下吗?还有为什么我们在创建 Glue 连接时需要提供 VPC?
amazon-web-services - AWS Glue:架构中未找到列“column_name”
我正在尝试在 AWS Glue 中创建 ETL 作业。用例如下:当在运行 ETL 作业后在一个源表中添加一列时,当我们尝试重新运行 etl 作业时,etl 作业失败,说找不到列(在目标表中)
如何启用 ETL 在目标表中创建该列。因为 ETL 已经有权在表不存在时创建表。
例子:
源表:
ETL 作业配置为加入它们两者,导致
在此之前,它可以完美运行。
现在,如果表 Y 得到如下修改
我重新运行爬虫(检测源列)
然后我重新运行 ETL 作业,它失败并显示以下错误消息
在架构中找不到列“column_5”
我该如何解决这个问题?
用胶水脚本更新:
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 磁盘)启动了该作业。
下面是表示此作业指标的图表。由此看来,数据看起来并没有歪斜……我错了吗?
欢迎任何关于成功运行的建议!