问题标签 [aws-data-wrangler]

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

amazon-web-services - AWS Lambda - AwsWrangler - Pandas/Pytz - 无法导入所需的依赖项:pytz:

为了克服 Numpy 错误,我从https://github.com/awslabs/aws-data-wrangler/releases下载了这个 zip awswrangler-layer-1.9.6-py3.8 。

我想使用 Pandas 将 JSON 转换为 CSV,它在我的 Windows 2000 上的 PyCharm 开发环境中运行良好。

我有一个脚本,它为我的 Lambda 的“部署包”构建 zip。我创建了一个新的干净目录,将我的代码复制到其中,然后将代码从 awsrangler 复制到其中。

那时,我停止收到有关 Numpy 版本的错误,并开始收到以下错误。

错误:

我不明白的是 pytz 在 awsrangler 和我的发行版中。

在此处输入图像描述

我在 AWS 上使用 Python 3.8,因为它是更高版本的 wranger:awswrangler-layer-1.9.6-py3.8。

我的第一次尝试只包含 Pandas 和 Numpy 模块。第二次尝试还包括 pytz 模块,同样的错误。第三次尝试,我包括了 awswrangler-layer-1.9.6-py3.8/python 中的所有内容,尽管我并不需要所有内容,但还是同样的错误。

0 投票
1 回答
1617 浏览

amazon-web-services - aws 使用 aws wrangler 从 athena 读取数据错误

我正在使用 python3

我正在尝试使用 awswrangler 包从 aws athena 读取数据。

下面是代码

错误:

我不确定指定sql查询在哪里工作

0 投票
1 回答
304 浏览

aws-lambda - AWS Lambda Chalice 层分段错误

我正在通过 Chalice 部署一个 Python 3.7 Lambda 函数。由于代码及其环境要求大于 50 MB 限制,因此我使用 Chalice 的“自动层”功能生成具有要求的层,即awswrangler.

因为生成的层大于 50 MB,所以我将managed-layer-...-python3.7.zip手动上传到 s3 并创建一个 Lambda 层。然后我使用 chalice 重新部署,删除该automatic_layer选项并将其设置为layers我手动创建的层的生成 ARN。

以这种方式部署的功能运行正常几次,然后开始偶尔出现“Segmentation Fault”失败。错误率很快就增加了,现在它失败了 100%。

由于awswrangler本身需要boto3&botocore,而且它们已经在Lambda环境中,所以我怀疑不同版本的boto可能存在冲突。我通过在需求中明确包含 boto3 和 botocore 来尝试相同的流程,但我仍然收到相同的分段错误错误。

任何帮助深表感谢。

0 投票
1 回答
55 浏览

python - Pandas 将两个 DF 与行替换合并

我遇到了将两个 DF 合并为一个并按id第二个 DF 中的值保存所有重复行的问题。例子:

我是。期望输出为:

如您所见,我们添加了一个新列,df1 的所有行现在都为 null 并且 row withid2被替换为所有值df2(更新列的数量可以不同,因此不是更新特定列的值,而是替换整个row by id) 我不关心索引和排序

寻找有效的解决方案,因为我有大量文件,我应该以这种方式合并到主 DF

0 投票
1 回答
114 浏览

python - 在 conda 环境中安装最新版本的 awsrangler 时遇到问题

我当前的 conda 环境正在运行 python 3.8.5。

当我查看他们的文档时,它显示最新版本是 2.5.0。出于某种原因,当我最初通过 安装它时conda install -c conda-forge awswrangler,它安装了 0.3.1 版。

当我尝试运行时:

conda install -c conda-forge awswrangler==2.5.0

它有解决环境的问题。

0.3.1版

0 投票
1 回答
272 浏览

python - 无法在 conda python 3.8 env 上正确安装 awswrangler(连接问题)

这是我到目前为止所遵循的过程。

创建环境:

安装awswrangler

当我进入我的笔记本并尝试将其导入我的笔记本时,我收到以下错误:

0 投票
3 回答
477 浏览

amazon-web-services - 如何让python包`awswranger`接受自定义`endpoint_url`

我正在尝试使用 python 包awswrangler访问非 AWS S3 服务。

AWS Data Wranger 文档声明您需要创建一个boto3.Session()对象。

问题是boto3.client()支持设置endpoint_url,但boto3.Session()不支持(docs here)

由于这个原因,在我以前的使用中,boto3我一直使用。client

有没有办法boto3.Session()使用自定义创建endpoint_url或以其他方式配置awswrangler以接受自定义端点?

0 投票
1 回答
1019 浏览

python - awswrangler.s3.read_parquet 忽略 partition_filter 参数

中的partition_filter参数wr.s3.read_parquet()未能过滤 S3 上的分区拼花数据集。这是一个可重现的示例(可能需要正确配置的boto3_session参数):

数据集设置:

然后可以在控制台中查看 S3 数据:

在此处输入图像描述

但是使用日期过滤器重新读取会返回 4 条记录:

事实上 sub'inglambda x: False仍然返回 4 行。我错过了什么?这是来自指导

partition_filter (Optional[Callable[[Dict[str, str]], bool]]) – 回调函数过滤器应用于 PARTITION 列(PUSH-DOWN 过滤器)。此函数必须接收单个参数 (Dict[str, str]),其中键是分区名称,值是分区值。分区值将始终是从 S3 中提取的字符串。此函数必须返回一个布尔值,True 读取分区或 False 忽略它。如果 dataset=False,则忽略。例如 lambda x: True if x["year"] == "2020" and x["month"] == "1" else False

我注意到返回的数据框不包括上传数据中的分区“日期”列 - 在文档中看不到对此删除的引用,并且不清楚是否相关。

0 投票
1 回答
480 浏览

python - 如何从 Python 3 中的 awswrangler 捕获 exceptions.NoFilesFound 错误

这是我读取存储在 S3 存储桶路径中的镶木地板文件的代码。当它在路径中找到镶木地板文件时,它可以工作,但exceptions.NoFilesFound在找不到任何文件时会给出。

输出:

如果 S3 路径中没有文件,例如,如果我将path_suffixfrom更改'/y=2021/m=4/d=13/h=17/'为,则会'/y=2021/m=4/d=13/h=170/'收到以下错误:

看起来它来自awswranglerPython 库,所以 botocore.exceptions 无法捕捉到它。我可以简单地使用 pythontry:except:绕过,但我需要抓住它才能正确处理它。我怎样才能做到这一点?

0 投票
1 回答
786 浏览

python - 使用 awswrangler 连接到 AWS Redshift

“MY_GLUE_CONNECTION”的值是多少?