问题标签 [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 粘合作业中仅使用 2 列中的 1 个分区列作为下推谓词
我像这样在s3上存储我的数据
粘合表是基于分区的companyid
,day
但是在构建push down predicate
以从表中读取数据时进行粘合工作,我只想使用day
而不是 companyid
。是否有可能做到这一点?
或者必须同时使用分区列companyid
和day
读取数据push down predicate
?
运行胶水作业时出现以下错误
python - aws Glue-JOB 的问题
我有一个胶水作业,负责将 csv 文件转换为 parquet 格式。
我的 Glue 作业是使用pyspark
and编写的glue dataframes
。它一直工作到26th March
. 通常需要30 minutes
完成 JOB。
问题:最近我看到我的胶水工作连续运行2-days
并返回timeout error
。
笔记:
我不知道为什么这个胶水工作需要 2 天才能处理并返回TimeOut Error
谁能告诉我一个解决方案?
amazon-web-services - 带有 PySpark 的 AWS Glue - DynamicFrame 导出到 S3 中途失败并出现 UnsupportedOperationException
我应该先说我一直在使用AWS Glue Studio来学习如何将 Glue 与 PySpark 一起使用,到目前为止它进展顺利。直到我遇到一个我无法理解的错误(更不用说解决了)。可以在底部找到数据示例。
语境
我所做的只是一个简单的数据转换。Input S3 Bucket --> CustomTransform --> Output S3
. 但是程序在导出一些数据后不断崩溃。我稍后也提到过,但我什至尝试删除 CustomTransformation,但 S3 数据导出仍然失败,即使只是从一个存储桶到另一个存储桶。
错误
这是我收到的错误的 Python 部分(从 CloudWatch 复制):
真正的谜题
最让我困惑的是,这个崩溃发生在它已经将大部分数据导出到 S3 之后。这立即表明数据有问题,因为它会出现一些损坏(或格式错误)的数据,然后崩溃。
因此,我查看了成功导出的数据与输入数据之间的差异,并找到了所有未导出的行。没有什么让我感到奇怪或出口失败的原因。
当我选择 S3 存储桶作为输入源时,了解 AWS Glue 正在推断架构可能会有所帮助。
我试过的
因此,我尝试以 Glue 支持的所有不同格式导出数据,但都没有奏效。我还尝试跳过所有数据转换,直接使用输入 S3 存储桶并直接导出到输出 S3 存储桶,但它仍然因相同的错误而崩溃(实际上这是我上面包含的错误消息!)。
同样,这一切都表明数据有问题,但我查看了所有未通过该过程的数据(仅约 180 条记录),所有看起来都与通过该过程的数据一样。
为了进行完整性检查,我在其他一些(非常相似的)数据上使用了 Input S3 --> Output S3 方法,它工作得很好,基本上起到了复制粘贴的作用。
我也偶然发现了这篇文章。但这并没有真正帮助,当我尝试更改输出格式以获取更多信息时,我遇到了同样的错误 - 没有额外的信息。
有没有人可以帮助确定这里的问题?没有任何迹象表明这应该崩溃。如果这对人们有所帮助,我很乐意提供 Java 错误的其余部分。
数据示例
这是我的数据的样子:
除了 Date (long)、first_trade_date (long) 和 Amount (double) 之外,所有字段都是字符串。
当我打电话时,.printSchema()
我得到以下信息:
aws-glue - AWS Glue 无法正确读取带有特殊字符的列名
我正在阅读 AWS Glue 目录中已经存在且采用镶木地板格式的目录表。
列名称具有特殊字符,例如“(”和“)”。
当我在 Glue ETL 作业中读取此表时,Glue ETL 将列的名称转换为例如 BUDGET(YR) 到 BUDGET_YR_#1 和 Actual(op) 到 Actual_op_#2
而在雅典娜上似乎很好。
现在我使用withColumnRenamed()
来修复这个问题,但即使我从最后一个命令的输出中再次读取 DF。我仍然看到列名的相同行为发生了变化。
pyspark - AWS Glue-如何在 S3 中将动态帧编写为 .txt 文件并使用“|” 作为分隔符
我想将动态框架作为文本文件写入 S3 并使用“|” 作为分隔符。
如何修改下面的代码,以便 Glue 将框架保存为 .txt 文件并使用“|” 作为分隔符。
amazon-web-services - 如何停止/退出 AWS Glue 作业 (PySpark)?
我有一个成功运行的 AWS Glue 作业,可以转换数据以进行预测。如果我达到特定条件,我想停止处理并输出状态消息(正在工作):
这会产生“SyntaxError: 'return' outside function”,我试过:
这不是在 AWS Lambda 中运行的,而是使用 Lambda 开始的 Glue 作业(例如 start_job_run())。
amazon-web-services - 使用火花而不是使用动态框架(胶水上下文)从胶水目录中读取
由于我们的方案是不变的,我们使用 spark.read() 比在数据存储在 s3 中时从选项创建动态帧要快得多
所以现在想使用动态框架从胶水目录中读取数据需要很多时间所以想使用 spark read api Dataframe.read.format("").option("url","").option("dtable", schema.table 名称).load()
在格式和 url 选项中输入什么以及需要任何其他内容?
dataframe - 具有多种数据类型的 Pyspark SQL 数据帧映射
我在胶水中有一个 pyspark 代码,我想创建一个带有映射结构的数据框,它是整数和字符串的组合。
样本数据:
因此,我尝试使用下面的代码来创建地图数据类型。但是每次整数数据类型 jobLevel 被转换为字符串数据类型。有什么建议可以通过保留工作级别的数据类型来完成这项工作吗?
使用的代码:
amazon-web-services - 从 AWS DynamoDB pyspark AWS 胶水读取数据(不使用动态框架)
我知道我们可以使用gluecontext动态框架从dynamoDB读取数据,使用它会消耗更多的时间来读取。考虑下面的示例以从 S3 读取相同的数据
然而
那么有没有办法使用 PYSPARK DATAFRAME 从 DYNAMOBD 读取数据?
********经过一些研究********
https://github.com/audienceproject/spark-dynamodb
使用上述连接器并能够从本地机器读取和显示数据。
由于 aws 胶水使用的是 spark 2.4,因此下载了 spark-dynamidb_2.11-1.0.3.jar 并上传到 s3 并在 python 库路径中提到了 s3 URI。
在运行作业时,它会抛出 o.88.showString.com.audienceproject.spark.dynamodb.datasource.ScanPartition
任何想法如何在 AWS GLUE 中使用这个包?
java - 在 AWS Glue 错误上运行 pyspark 脚本:'Continuous Logging: Creating cloudwatch appender。线程“main”中的异常 java.lang.NoSuchMethodError'
我有一个 Python 脚本,它使用 pyspark 来处理一些数据,然后我试图在 AWS Glue 作业上运行它,有时作业成功但有时失败,我是新来的 glass ,这是我发现的差异之一日志中的成功运行和失败运行:
连线的事情是,在不更改任何配置或脚本的情况下,这个错误只是偶尔发生,很奇怪。
对于成功运行:
对于失败的运行:
然后在这一行SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
之后发生了差异Continuous Logging: Creating cloudwatch appender.
,然后遇到了一些错误Exception in thread "main" java.lang.NoSuchMethodError: com.amazonaws.protocol.json.JsonErrorShapeMetadata.withExceptionUnmarshaller(Lcom/amazonaws/transform/JsonErrorUnmarshaller;)Lcom/amazonaws/protocol/json/JsonErrorShapeMetadata;
我不完全理解这一点,有人可以帮助我吗?谢谢。