问题标签 [aws-glue-data-catalog]

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 投票
2 回答
6286 浏览

amazon-web-services - 通过 AWS Glue 数据目录将 Spark DataFrame 写入 Hive 表

我在 EMR 上使用 Spark 2.4.0,并尝试使用 AWS Glue 数据目录将简单的 Dataframe 存储在 s3 中。代码如下:

上面的代码按预期工作 - 数据被过滤并存储在与 AWS Glue 表 emrdb.testtableemr 链接的 s3 目录中。我得到的问题是:虽然它工作正常,但仍然抛出异常

我使用insertInto方法遇到了同样的错误:

你能帮我理解这个异常在这种情况下的含义并建议如何解决这个问题吗?

提前致谢!

问候安杰伊

0 投票
0 回答
350 浏览

partitioning - Aws Glue 目录 - 如何不使用胶水目录对表进行分区

我有以下格式的 S3 文件夹结构,比如说:Abc/123/xyz.txt 和 Abc/456/jkl.txt 等。其中 xyz.txt 和 jkl.txt 具有相同的结构。我使用 AWS 胶水爬虫对其进行编目,我将源传递为:Abc/ 并指定为 S3 文件创建单个表的选项。我认为它将创建一个具有 2 个分区即 123 和 456 的表。但是我希望有一个没有任何分区的表,并且在通过 Atehna 查询时包含来自 xyz.txt 和 jkl.txt 的数据。关于如何实现这一点的任何想法?

0 投票
1 回答
1684 浏览

amazon-s3 - AWS Glue 爬虫 - 分区键类型

我正在使用 Spark 以 ORC 格式将文件写入 S3。也使用 Athena 来查询这些数据。

我正在使用以下分区键:

一旦我执行 Glue 爬虫在存储桶上运行,除了分区键的类型外,一切都按预期工作。

爬虫在目录中将它们配置为String类型而不是int

是否有配置来定义分区键的默认类型?

我知道它可以稍后手动更改并将 Crawler 配置设置为Add new columns only.

0 投票
3 回答
1725 浏览

amazon-s3 - Glue Crawler 无法排除 .csv.metadata 文件

我有一个 S3 位置s3://bucket-name/folder-name/,其中包含一个子文件夹,其名称是动态生成的,其中包含短语_Top10InvoiceIds. 该子文件夹由.csv.csv.metadata文件组成。我正在使用胶水爬虫仅爬取 csv 文件并在 Athena 中查看它们。但我无法排除这些.csv.metadata文件。我已经尝试了所有可能的正则表达式模式作为 glob 值。

我的一些尝试是:

  1. *_Top10InvoiceIds/ *.metadata
  2. *_Top10InvoiceIds/ * .* metadata
  3. *_Top10InvoiceIds/ *. *.metadata
  4. *_Top10InvoiceIds/ * .csv.metadata
  5. ** .metadata
  6. * .metadata
  7. * .csv.metadata
  8. * /*.metadata

如果有人可以帮助我找出模式或提出另一种方法来做同样的事情,那就太好了。

0 投票
1 回答
2701 浏览

amazon-web-services - 解析在 AWS Athena/AWS Glue 目录中的一列中具有换行符的 csv 文件

我有如下示例数据:

在第二行 (id=101) 中,日志列有换行符,一行中有 3 行。我在 vim 编辑器中启用了 ":set list" 选项来显示换行符 ($) 和 endofline (^M) 字符。

在这里处理换行符AWS Suggested OpenCSVSerde。我尝试使用 OPENCSVSerde 序列化escapeChar=\\, quoteChar=\", seperatorChar=,尽管如此,它将数据显示为 5 行,而我需要 3 行。当我在 Athena 中查询时,id=101 只显示第一行,而其余部分则缺失:

有关如何处理 csv 文件列中的多行字符的任何提示或示例?

我正在探索自定义分类器,但还没有运气。

0 投票
2 回答
615 浏览

amazon-web-services - 我们可以在aws DMS中执行sql查询吗

我们可以在 DMS 任务中执行 sql 查询,以便它只获取所需的数据而不是整个数据库。如果不可能,那么使用哪个 aws 服务将基于查询的数据从本地数据源获取到 aws S3。

0 投票
2 回答
3824 浏览

amazon-web-services - Terraform AWS Athena 使用 Glue 目录作为数据库

我对如何使用 terraform 将 Athena 连接到我的 Glue Catalog 数据库感到困惑。

我用

创建一个 Glue DB 和爬虫来爬取一个 s3 存储桶(这里只有两个),但我不知道如何将 Athena 查询服务链接到 Glue DB。在 terraform 文档中Athena,似乎没有办法将 Athena 连接到 Glue 目录,而只能连接到 S3 Bucket。然而,显然Athena 可以与 Glue 集成

如何改造 Athena 数据库以使用我的 Glue 目录而不是 S3 存储桶作为其数据源?

0 投票
1 回答
2717 浏览

amazon-web-services - AWS Glue 和跨区域访问

我有几个关于 AWS Glue 的问题,希望有人能为我解答。

所以场景是我们在 us-east-1 区域设置了一个 AWS 账户,我们使用 AWS EMR 和 Glue 作为 hive 元存储(通过 emr 配置)。这在过去一年左右一直运行良好,没有出现任何问题,Glue Catalog 有一堆 DB 和一堆表。现在我们要做的是将整个项目迁移到另一个区域(相同的帐户,不同的区域,例如 us-west-1)。所以我把其他所有东西都移过来了,ec2 实例、sg 等。问题是我在 us-west-1 中看不到来自 us-east-1 胶合元存储的表。现在我的问题。

1.) AWS Glue 目录是否特定于区域?意思是,如果我在一个区域中创建一个粘合的数据库/表,它会留在那个区域还是我可以做些什么来跨所有区域访问它?通过控制台和编程方式。

2.) 如果能够跨区域共享单个粘合元存储,那么它如何与 EMR 一起使用,我是否必须在 EMR 配置页面中指定区域属性以及其他粘合设置?

3.) 如果#2可以的话,跨区域访问胶水目录是否有任何费用(跨区域访问)

3.) 否则,如果 #2 不可能,我是否必须手动从一个区域复制 db/tables 并将它们导入到另一个区域的粘合数据目录中?这是做这件事的正确方法吗?

0 投票
1 回答
982 浏览

avro - AWS Glue - avro to parquet - 胶水作业从目录中获取空框架

我正在使用 AWS Glue Crawler 抓取大约 170 GB 的 avro 数据以创建 Data Catalog 表。

avro 数据中有几个不同的模式版本,但爬虫仍然设法将数据组合到一个表中(我启用了“按数据兼容性和模式相似性分组 - 模式”)。

这是事情出现问题的时候。

我只能使用 Athena 对SELECT COUNT(*) FROM <DB>.<TABLE>数据运行查询 - 任何其他查询都会引发以下错误:

一个简短的谷歌检查让我相信这与 avro 文件中的模式有关。

通常,这是我会集中精力的地方,但是:我之前已经能够执行完全相同的过程(AVRO -> 爬虫 -> 胶水作业 -> PARQUET),但使用较小的 avro 数据集(50GB)有同样的问题(只能运行计数查询)。继续。

之前的转换工作大约需要一个小时。现在,在 170 GB 数据上运行相同的作业时,作业会在一分钟内完成,因为glueContext.create_dynamic_frame.from_catalog现在返回一个空帧 - 没有错误,没有任何内容。混乱是真实的,因为我能够在 Athena 中对作业使用的同一张表运行 COUNT 查询,返回 520M 个对象的计数。

有谁知道问题可能是什么?

一些可能相关的事情:

  • COUNT 查询返回 520M,但recordCount表中的属性显示 170M 记录。
  • 数据存储在 300k .avro 文件中,大小为 2MB-30MB
  • 是的,爬虫指向包含所有文件的文件夹,而不是文件(常见的爬虫陷阱)。
  • 之前使用较小数据集(50 GB)的尝试是 100% 成功的 - 我可以爬取 parquet 数据并使用 Athena 查询它(测试了许多不同的查询,所有的工作)
0 投票
2 回答
2758 浏览

pyspark - Aws Glue Etl - 没有名为 dynamicframe 的模块

我在尝试从 Aws Glue Etl 执行 aws 示例时遇到问题 - 在本地

阅读所有这些步骤后: https ://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-tutorial-local-notebook.html

并将我的端点创建为 aws 胶水。当我尝试执行此代码时:

我有这个错误:

而且我不知道如何解决这个问题

我在本地有 zeppeling0.7.3 配置。

前面显示的代码的想法是,得到这个结果:

在此处输入图像描述