问题标签 [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.
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 中的所有内容,尽管我并不需要所有内容,但还是同样的错误。
amazon-web-services - aws 使用 aws wrangler 从 athena 读取数据错误
我正在使用 python3
我正在尝试使用 awswrangler 包从 aws athena 读取数据。
下面是代码
错误:
我不确定指定sql查询在哪里工作
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 来尝试相同的流程,但我仍然收到相同的分段错误错误。
任何帮助深表感谢。
python - Pandas 将两个 DF 与行替换合并
我遇到了将两个 DF 合并为一个并按id
第二个 DF 中的值保存所有重复行的问题。例子:
我是。期望输出为:
如您所见,我们添加了一个新列,df1 的所有行现在都为 null 并且 row withid2
被替换为所有值df2
(更新列的数量可以不同,因此不是更新特定列的值,而是替换整个row by id
) 我不关心索引和排序
寻找有效的解决方案,因为我有大量文件,我应该以这种方式合并到主 DF
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
它有解决环境的问题。
python - 无法在 conda python 3.8 env 上正确安装 awswrangler(连接问题)
这是我到目前为止所遵循的过程。
创建环境:
安装awswrangler
:
当我进入我的笔记本并尝试将其导入我的笔记本时,我收到以下错误:
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
以接受自定义端点?
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
我注意到返回的数据框不包括上传数据中的分区“日期”列 - 在文档中看不到对此删除的引用,并且不清楚是否相关。
python - 如何从 Python 3 中的 awswrangler 捕获 exceptions.NoFilesFound 错误
这是我读取存储在 S3 存储桶路径中的镶木地板文件的代码。当它在路径中找到镶木地板文件时,它可以工作,但exceptions.NoFilesFound
在找不到任何文件时会给出。
输出:
如果 S3 路径中没有文件,例如,如果我将path_suffix
from更改'/y=2021/m=4/d=13/h=17/'
为,则会'/y=2021/m=4/d=13/h=170/'
收到以下错误:
看起来它来自awswrangler
Python 库,所以 botocore.exceptions 无法捕捉到它。我可以简单地使用 pythontry:
并except:
绕过,但我需要抓住它才能正确处理它。我怎样才能做到这一点?
python - 使用 awswrangler 连接到 AWS Redshift
“MY_GLUE_CONNECTION”的值是多少?