问题标签 [amazon-s3-select]

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 回答
177 浏览

ruby-on-rails - 如何使用 s3-select 获取 s3 json 文件中子对象的计数?

我使用 Ruby-on-Rails将我的 json 文件存储在aws-s3中。物体看起来像,

我想使用s3-select获取员工对象的数量。

0 投票
1 回答
2178 浏览

sql - 无法使用 AWS S3 Select 对 JSON 进行查询

我正在尝试使用 aws 查询 JSON 对象s3-select。我的 JSON 数组结构是这样的:

数组中的所有对象都具有相同的属性。现在我想执行一个查询来返回所有标题等于的对象,比如说,mysqlathena

我在 aws 控制台中尝试了很多不同的脚本,但都没有奏效。它返回一个空数组/对象或给出一个错误。例如:

我的 JSON 数组结构是否错误(因为我的对象没有键名)?我怎样才能做到这一点?

0 投票
1 回答
976 浏览

sql - S3 选择无效路径组件

我试图弄清楚如何使用 AWS S3 Select,一切看起来都很简单,但是下面的查询就是不想工作:
select r.value from S3Object[*].outputs.private_subnets r
上面的返回Invalid Path component.

这是我正在使用的 JSON:

我只是不明白错误,是valueSQL中的特殊词吗?
这是我到目前为止尝试过的
select r from S3Object[*].outputs.private_subnets r

select r.type from S3Object[*].outputs.private_subnets r

所以我只是不明白有什么问题value

0 投票
0 回答
527 浏览

java - s3 select:如何获取镶木地板文件的列名?

s3 select用来读取存储在 S3 存储桶中的大型镶木地板文件的前 10 行。我能够获得csv格式的前 10 行,但它没有任何标题。它只包含没有任何列名的行。

有什么方法可以像我们一样获取这个 parquet 文件的标题或 CSV 文件?在 CSV 文件中,我们可以设置FileHeaderInfo参数IGNORE来获取标题。无论如何也对镶木地板文件做同样的事情吗?

如果没有,有没有其他方法可以读取这个 parquet 文件的前 10 行,以便我可以获取 parquet 数据的标题?

我正在阅读使用InputSerialization文档中描述的以下逻辑的 S3 选择:

0 投票
1 回答
2056 浏览

java - 如何使用 s3 select 从镶木地板文件中获取所有列的列表?

我有一个存储在 S3 存储桶中的镶木地板文件。我想获取镶木地板文件的所有列的列表。我正在使用s3 select,但它只是给了我所有行的列表,没有任何列标题。

无论如何从这个镶木地板文件中获取所有列名而不完全下载它?由于 parquet 文件可能非常大,我不想下载整个 parquet 文件,这就是为什么我使用s3 select选择前几行的原因

我试图通过执行显式获取列名

但它不起作用,因为 AWS S3 还不支持这一点。

有没有其他方法可以达到同样的效果?

0 投票
1 回答
610 浏览

json - 使用 AWS S3-select 获取 json 文件中对象计数的 SQL 表达式

我在 S3 中有一个具有以下结构的 json 文件

以下 SQL 函数可以很好地查找联系人数量

但有时,json 文件本身并没有那个contacs键,例如,

在这种情况下,上面的 sql 返回联系人计数为 1,但我希望它返回“零”。

如何动态重写 sql 来处理文件内容?

0 投票
2 回答
1021 浏览

amazon-web-services - 在 s3 选择查询中转义单引号

样本数据,存储在 S3 的文件中。如您所见,我的数据格式是每行一个 json

我的最终目标是按姓氏查询,并使用 like 运算符和用户提供的子字符串。所以我一步一步从易到难:

此查询有效并返回所有行:

好的!让我们继续。我尝试的下一个查询有效并按预期返回 John Smith

下一步是通过姓氏的子字符串进行尝试。让我们找出所有姓氏以“O”开头的人。

这有效并返回我的数据集中的两个玛丽。

下一步是行不通的。我想查找姓氏以 O 和撇号开头的所有用户。这是我做不到的。我试过了:

它们都不起作用。如何在 s3 select 中将单引号 (') 放在字符串文字中?

0 投票
1 回答
693 浏览

amazon-web-services - AWS S3 Select - 从 2 个不同级别的 json 检索数据

我将此 json 存储在 S3 文件中(这实际上是 aws Comprehend EntitiesDetection 作业的输出 => 意味着我无法控制此 json 的组织方式,它由 AWS 作业本身上传到 S3,所以我可以t 修改此 json 输入的结构):

我需要查找并检索所有类型=PERSON且得分> 0.7的文件,并检索以下数据:人员和文件。

今天我的查询表达式是:

这输出:

这部分很好,但我需要将每个“文本”(人名)与它来自的文件相关联。所以我期望的查询输出是:

如何找回这个?使用https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-glacier-select-sql-reference-select.html尝试了很多可能性,但都没有奏效。

0 投票
0 回答
288 浏览

sql - S3 Select - 从 CSV 获取最后 X 秒的数据

我正在使用 Javascript AWS S3 SDK 从我服务器上的 CSV 中提取数据。这是通过以下 SQL 查询语句完成的:

这将正确返回和之间期间的timestamps和值。parameterXstartTimeendTime

但是,我希望能够从数据集的最后 X 秒(例如命名windowSec)中动态提取这些值。换句话说,如果timestampsCSV 中的最后一个(也就是最大值)值是2019-04-17 19:50:55并且我指定我想要最后 20 秒,我想要在 和 之间2019-04-17 19:50:35进行观察2019-04-17 19:50:55

我可以通过运行初始 S3 选择语句来获取完整timestamps列并提取其中的最大值来做到这一点。但我认为在 S3 选择查询中有一种“正确”的方式可以直接执行此操作。我在下面尝试过,但我无法让它工作:

任何建议,将不胜感激。

CSV 样本数据(完整数据集):

windowSec = 20 时的预期输出:

编辑:添加示例数据

0 投票
2 回答
245 浏览

pyspark - EMR 集群大小对于使用 spark 从 S3 读取数据是否重要

设置:最新 (5.29) AWS EMR、spark、1 个主节点 1 个节点。

第 1 步。我使用 S3Select 解析文件并收集所有文件密钥以从 S3 中提取。步骤 2. 使用 pyspark 在循环中迭代键并执行以下操作

火花 .read .format("s3selectCSV") .load(key) .limit(superhighvalue) .show(superhighvalue)

花了 x 分钟。

当我将集群增加到 1 个主节点和 6 个节点时,我没有看到时间差异。在我看来,我没有使用增加的核心节点。
其他一切,明智的配置都是开箱即用的默认设置,我没有设置任何东西。

所以,我的问题是集群大小对于使用 EMR、Spark 从 S3 读取和检查(比如日志或打印)数据是否重要?