问题标签 [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 Glue ETL 工具从 S3 读取文件名
我在 S3 中有一些看起来像这样的文件(都在同一路径中):
每个文件的架构相当简单:
我希望能够使用 Athena 从 S3 查询这些名称和 ID,并在存在新文件时使用 AWS Glue 抓取该 S3 位置。
具体来说,我想在 Athena 中有一个带有架构的表:
我的直觉是使用 AWS Glue PySpark 将 S3 文件中的数据组合成一个 DataFrame,这很简单。但是,每个文件的日期存在于文件名本身而不是数据中。
有没有办法提取文件名的“日期”部分并将其用作 AWS Glue PySpark DataFrame 中的列?如果没有,是否有人的直觉提出了另一种方法?
amazon-web-services - 从 Pyspark 中的 .TXT 文件中删除最后一个分隔符
我有一个从不同系统生成的 S3 文件,如下所示:
现在,在 AWS Glue Pyspark 脚本中读取此文件时,我想从文件中删除最后一个分隔符。你能告诉我怎么做吗?
问题是 - 在尝试将此 .TXT 文件转换为镶木地板时,当我提到分隔符为“|~|”时 它在最后添加了一个额外的列。发生这种情况是因为在源文件中有一个额外的 |~| 每行末尾的分隔符。
所以这就是为什么我要删除最后一个 |~| 文件中每一行的分隔符,然后将其转换为镶木地板。
代码 :-
apache-spark - AWS Glue 仅从 Dynamo DB 中读取选定的记录
以下代码正在读取完整的 dynamo DB 表。有什么办法,我们可以读取选定的行(给定一组有限的分区列值)
amazon-web-services - Glue - 书签无法识别较新分区中的文件
我有一个从 S3 存储桶读取的粘合作业进行转换并将结果上传到另一个 S3 存储桶。
这是我的aws glue get-job-bookmark --job-name xx
回报
如您所见,我的 S3 结构为 bucketname/yyyy/mm/dd/HH。以上显示书签设置在前缀 2021/04/20/16 处。
现在,如果以相同的确切前缀添加另一个文件,则会对其进行处理。
但是,如果有一个较新的分区,例如 2021/04/20/17 并且其中有一个文件 - 它不会被书签拾取。
我的脚本非常简单,大部分都是自动生成的,因为我只是在测试这个功能。
我的表的位置在最顶层指定为 S3://xxyy。
谢谢阅读。
amazon-web-services - 使用 S3 在 AWS GLUE 中将多个数据源列转换为单个 DataTarget 列作为 JSON 对象
我是 AWS 服务的初学者,正在使用 AWS Glue 进行 ETL 工作。
我的数据源和目标都来自 S3 存储桶(.csv 文件)。
在这里,我需要将一些数据源列(多个)转换为 JSON 对象数组格式的 DataTarget 文件中的单列,其余列需要与其他单列映射。
例如:[{“Title”:“Size”,“Key”:“Size”,“Value”:“40”,“Type”:“可配置”}}
Title、Key、Type 是数据源文件中的独立列。我需要将这些列组合成一个名为“Attributes”的列,并且该值应该类似于前面提到的 Eg。
任何帮助将不胜感激。
提前致谢
amazon-web-services - AWS Glue Pyspark Parquet 写入 S3 耗时太长
我有一个 AWS 粘合作业 (PySpark),需要从大小为 350GB+ 的集中式数据湖加载数据,准备并加载到由两列分区的 s3 存储桶中。我注意到加载和写入一周的数据需要很长时间(甚至大约一天)。有几个月的数据需要写入。我尝试增加工作节点,但似乎无法解决问题。
我的胶水作业目前有 60 个 G.1x 工作节点。
我在代码中的 SparkConf 看起来像这样
我相信它确实成功地将文件写入分区,但是删除它创建的所有临时 spark-staging 文件需要很长时间。当我检查任务时,这似乎需要大部分时间。
我对 S3 的写入看起来像这样
任何帮助都会得到帮助。
pyspark - 如何从 AWS Glue Pyspark 中的 Rundate 缩短一周
我有一个场景,我在 AWS Glue 作业中以“YYYY-MM-DD”格式传递运行日期值。
让我们说 2021-04-19。
现在,我将这个运行日期读为 'datetime.strptime(rundate, "%y-%m-%d")'
但是现在我想从中创建2个变量变量A和变量B,例如-
变量 A= rundate- 2 周(应保存为 YYYYMMDD 格式)
变量 B = rundate- 1 周(应保存为 YYYYMMDD 格式)
然后使用此变量过滤数据框中的数据。
python-3.x - Glue ETL 作业 - 从本地数据库读取数据 - 使用目录连接
我有一个胶水 ETL 作业,它将数据写入本地 postgreSql 数据库。我无法在胶水方法中找到一个有效的选项来使用 jdbc 连接从同一数据库中读取数据。
以下是现有的方法:
- 从 S3(csv 文件)读取数据 - 使用爬虫 - 能够查看数据目录中的数据。
- 使用 jdbc url、用户名、密码和其他所需配置创建了一个胶水数据目录连接“connection-on-premise-postgre”。
- 粘合 ETL jobv 以将数据从目录表加载到本地 postgresql 数据库表
我需要使用上面“connection-on-premise-postgre”上使用的相同连接将数据从另一个本地表读取到 AWS 粘合作业
请让我知道如何做到这一点。我尝试使用选项创建数据框,但无法正确配置参数。
amazon-web-services - 如何在 AWS 胶水中使用从一个胶水脚本到另一个胶水脚本的函数
我有一个 AWS 胶水 pyspark 脚本,例如 scriptA.py。在这个脚本中,我定义了一些通用函数,例如 readSourceData()
def readSourceData(参数1,参数2):
//函数逻辑
现在我想在我的 secong glue pyspark 脚本 scriptB.py 中使用这个通用函数。
我有很多这样的通用功能。如何导入这些函数并在其他脚本中使用它们?
amazon-emr - 使用 spark sql 的 aws 胶水滴分区
使用 spark sql frm 胶水元数据删除分区会引发问题,而相同的代码在 hive shell 中工作。