问题标签 [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 回答
330 浏览

postgresql - 是否可以使用 AWS/Glue/Spark shell 写入 RDS raw sql (PostgreSQL)?

我有一个通过 CloudFormation 预先构建的 RDS/PostgreSQL 数据库的 Glue/Connection,它可以通过getJDBCSinkAPI 在 Glue/Scala/Sparkshell 中正常工作,以将 DataFrame 写入该数据库。

但我还需要写到同一个数据库、普通 sql 等create index ...create table ...我怎样才能在同一个 Glue/Spark shell 中转发那种语句?

0 投票
0 回答
18 浏览

amazon-web-services - 如何从具有数组数据的列中选择值

使用 AWS 胶水 sql 上下文,我想探索 paraar 列并希望从该列中提取数据。我对 AWS 胶水很陌生。我不知道该怎么做。

我已经执行了下面的代码来获取这个数据列。

0 投票
2 回答
1697 浏览

amazon-s3 - 如何在 AWS 中使用 Glue 作业覆盖 s3 数据

我有 dynamo db 表,我正在使用胶水作业将 dynamo db 数据发送到 s3。每当运行胶水作业以将新数据更新到 s3 时,它也会附加旧数据。它应该覆盖下面的旧 data.Job 脚本

0 投票
1 回答
632 浏览

apache-kafka - Kafka 与 AWS GLUE 的集成

找不到此特定集成的任何特定组。

我正在为一家零售组织工作,并尝试将 Kafka 流与 Glue 直接集成。我的意思是将 Kafka 主题作为 AWS Glue 的输入源。我正在使用 Apache Kafka 2.12。

如果有人研究过这个集成模式,我会来这个小组寻求帮助。我在此集成测试期间遇到的问题如下

1) 当我在 AWS Glue 控制台中创建到 Kafka 的连接时,AWS Glue 控制台上的“测试连接”选项被禁用(灰显)。所以不确定我创建的连接是否正常。

2) 在我的设置中 - 输入源是带有 JSON 格式消息的 Kafka / Topic。目标我保留为 S3/csv 格式,源和目标之间的字段默认映射。我选择 SparkStreaming 作为工作类型。

主要问题是 AWS Glue 作业连续运行数小时,但不生成任何输出。似乎 job/pyspark 脚本无法从 Kafka 读取。即使在日志中,我也无法确定它是否连接到 kafka 服务器

3) 当使用 Kafka Stream 作为 AWS Glue 的输入源时 - AWS Glue 数据库中的表/架构需要手动创建,我们已经这样做了。但我不确定表模式是否正确创建,正如我在下面的作业日志中注意到的那样(isRegisteredWithLF:false)

2020-05-29 09:46:34,047 INFO [Thread-9]glue.GlueContext (GlueContext.scala:getCatalogSource(176)) - getCatalogSource: catalogId: null, nameSpace: poc-glue-athena-database, tableName: kafka_stream, isRegisteredWithLF: 假

4)有人可以确认AWS Glue作业是否在内部使用KSql(一个kafka组件)。我收到以下关于 kafka 中端口 8088 (我想它用于 KSQL Server )的警告。我可以理解这一点——为什么会这样,因为我没有在我的设置中设置 KSQL 实例。因为它是警告 - 我认为这不应该是 AWS Glue Job 无法工作的大问题。2020-05-29 09:46:36,201 WARN [Thread-9] client.YarnClient (YarnClient.java:makeRestApiRequest(66)) - URL http://0.0.0.0:8088/ws/v1的 GET 请求失败/cluster/apps/application_1590745365782_0001 com.amazon.ws.emr.hadoop.fs.shaded.org.apache.http.conn.HttpHostConnectException:连接到 0.0.0.0:8088 [/0.0.0.0] 失败:连接被拒绝(连接被拒绝)

问候桑吉夫

0 投票
2 回答
2749 浏览

amazon-web-services - 我应该每次都运行 Glue 爬虫来获取最新数据吗?

我有一个名为 Employee 的 S3 存储桶。每三个小时我就会在存储桶中获取一个带有时间戳的文件。我将使用 Glue 作业将文件从 S3 移动到 Redshift,并进行一些转换。我在 S3 存储桶中的输入文件将具有固定的结构。My Glue Job 将使用通过爬虫在 Data Catalog 中创建的表作为输入。

首轮:

三个小时后,如果我再为员工获取一份文件,我应该再次抓取它吗?

有没有办法在数据目录中拥有一个表,比如员工,并使用最新的 S3 文件更新表,Glue Job 可以使用该文件进行处理。还是我应该每次都运行爬虫来获取最新数据?问题是我的数据目录中将创建更多的表。

请让我知道这是否可能。

0 投票
1 回答
2047 浏览

python-3.x - 在 docker 容器输出中运行 AWS 粘合作业,“com.amazonaws.SdkClientException:无法连接到服务端点:”

我正在使用 Docker 开发本地 AWS 粘合作业(使用 pyspark)。我有一个包含使用 GlueContext 类的 aws 粘合作业的 python 文件 (song_data.py)。当我gluesparksubmit glue_etl_scripts/song_data.py --JOB-NAME test在容器终端中运行以执行粘合作业脚本时,出现以下错误:

在胶水作业文件 (song_data.py) 中调用 glueContext.create_dynamic_frame.from_catalog() 方法时会引发错误:

我试过了:

使用不同的访问/密钥属性将 Hadoop 配置 fs.s3a 更改为 fs.s3:

使用 GlueContext 的 create_dynamic_frame_from_catalog() 方法而不是 create_dynamic_frame.from_catalog():

删除 Hadoop 端点配置: # hadoop_conf.set("fs.s3a.endpoint", "s3.us-west-2.amazonaws.com")

更新的尝试

将 song_data.py 更改为:

输出错误

尝试1:

尝试2:

尝试 3:

0 投票
1 回答
1442 浏览

amazon-web-services - 即使在使用反引号(`)转义点后,在 Amazon Athena 中创建列名包含点(.)的表时也会出错

根据https://docs.aws.amazon.com/athena/latest/ug/tables-databases-columns-names.html

特殊的角色

不支持下划线 (_) 以外的特殊字符。有关更多信息,请参阅 Apache Hive LanguageManual DDL 文档。

重要的

尽管您可以成功地创建包含除下划线以外的特殊字符的表、视图、数据库或列名称,方法是将它们括在反引号 (`) 字符中,但引用它们的后续 DDL 或 DML 查询可能会失败。

因此,我尝试使用存储在 S3 存储桶中的 JSON 文件创建一个表,并且 JSON 中的一个键包含多个点(。),根据链接上给出的信息,应该没问题我使用了反引号(`)逃避它。

但它给出了以下错误:

现在,您可能会说,根据提供的链接,很明显它不会起作用,但是当我通过 AWS Glue 中的 Crawler 执行此操作时,一切正常,我可以看到其中带有点的列。

根据https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html

无论表是如何创建的,表创建过程都会将数据集注册到 Athena。此注册发生在 AWS Glue 数据目录中,并使 Athena 能够对数据运行查询。

因此,AWS Athena 在幕后使用 AWS Glue,如果 Glue 的爬虫能够在 JSON 键中添加包含点 (.) 的列,那么为什么 Athena 的查询无法做到这一点。

也许我错过了一些东西。所以,如果有人在过去经历过这样的事情并解决了这个问题,请赐教。如果不可能做我想做的事,也请强调这一点,这样我就不会一直浪费我的时间。

0 投票
1 回答
708 浏览

dataframe - 在 AWS Glue 上使用 mergeDynamicFrame 的问题

我需要在 Glue 上的两个动态帧之间进行合并。我尝试使用 mergeDynamicFrame 函数,但我不断收到相同的错误:

AnalysisException:“无法解析' id'给定输入列:[];;\n'Project ['id]\n+- LogicalRDD false\n”

现在,我有 2 个 DF:df_1(id,col1,salary_src)和 df_2(id,name,salary)

我想通过“id”列将 df_2 合并到 df_1 中。

作为测试,我尝试从两个 DF(salary 和salary_src)中传递一列,并且错误为:

AnalysisException:“无法解析' salary_src'给定输入列:[id,name,salary];\n'Project [salary#2,'salary_src]\n+- LogicalRDD [id#0,name#1,salary#2],假\n"

在这种情况下,它似乎可以识别 df_2 中的列(id、name、salary).. 但是如果我只通过其中一列,甚至是第三列,它就会一直失败

0 投票
1 回答
3481 浏览

apache-spark - 如何在 AWS Glue PySpark 中运行并行线程?

我有一个 Spark 作业,它只会从具有相同转换的多个表中提取数据。基本上是一个 for 循环,它遍历表列表,查询目录表,添加时间戳,然后推入 Redshift(下面的示例)。

这项工作大约需要 30 分钟才能完成。有没有办法在相同的火花/胶水环境下并行运行这些?如果可以避免的话,我不想创建单独的胶水作业。

0 投票
1 回答
588 浏览

amazon-web-services - AWS 胶水火花提交使用 Spark avro

如何指定/传递包参数到 AWS 胶水火花作业?

我正在使用支持Spark 2.4.3的Glue 版本 1 ,并希望使用 Spark avro 来读取一些 avro 文件