问题标签 [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 投票
0 回答
61 浏览

python - 如何通过 AWS Wrangler 使用 SSL 验证

AWS Wrangler 提供了一个方便的接口,用于将 S3 对象用作 pandas 数据帧。我想在获取对象时使用它而不是 boto3 客户端、资源或会话。我还需要使用 SSL 验证。

以下 boto3 客户端代码适用于 SSL Aries 根证书 (!)

这个 aws wrangler 代码也可以工作(没有 TLS(SSL?)客户端证书):

但是当我包含 TLS(SSL?)客户端证书时,读取失败:

错误信息:

SSLError: SSL 验证失败https://MY-ENDPOINT.com/MY-BUCKET?list-type=2&prefix=MY-PREFIX-BLAH-BLAH.parquet%2F&max-keys=1000&encoding-type=url [SSL] PEM lib (_ssl.c:3524)

知道这里发生了什么吗?我没有找到 aws wrangler 文档,也没有发现 boto3 和 botocore 的文档非常有帮助:

https://aws-data-wrangler.readthedocs.io/en/latest/tutorials/002%20-%20Sessions.html https://aws-data-wrangler.readthedocs.io/en/latest/tutorials/021% 20-%20Global%20Configurations.html#21---全局配置 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html https://botocore.amazonaws.com /v1/documentation/api/latest/reference/config.html https://botocore.amazonaws.com/v1/documentation/api/latest/tutorial/index.html

以前也有人问过这种问题,如果可以提供关于如何在不同上下文中使用 boto3 客户端、资源和会话的直觉,那将不胜感激。

0 投票
0 回答
51 浏览

python - 在 python 中使用 aws wrangler 获取视图模式

我正在尝试创建一个 python 脚本,它将获取所有可用表和视图的架构。

获取表架构 wr.athena.show_create_table

现在,视图呢?我没有找到任何可以获取视图架构的函数。

我也尝试过SHOW CREATE VIEW,但它给了我空洞的结果。感谢任何帮助。提前致谢。

0 投票
1 回答
29 浏览

amazon-web-services - AWS Data Wrangler2.12.1 中的 wr.redshift.to_sql 失败

awswrangler 2.12.1

我能够将 data.head() 写入数据库,但在尝试写入所有数据时出错。数据是从另一个表中复制过来的,并在 to_sql 之前进行了一些清理。我也做了 data = data.fillna(value=np.nan)

ProgrammingError: {'S': 'ERROR', 'C': '22001', 'M': 'value too long for type character varying(256)', 'F': '/home/ec2-user/padb/ src/pg/src/backend/utils/adt/varchar.c','L':'511','R':'varchar'}

0 投票
1 回答
44 浏览

python - Sagemaker AWS牧马人>2.3.0

当我尝试将函数 read_excel 用作 AWS Wrangler 的一部分时,该函数在 Amazon Web Services 上的 Sagemaker Jupyter Lab 的 2.3.0 版中可用,它无法正确安装。Conda 实例的 Python 版本是 3.6。

直接在笔记本中运行 !pip install awswrangler >=2.3.0 时,提供的错误是

错误:由于 OSError 无法安装软件包:[Errno 2] 没有这样的文件或目录:'/home/ec2-user/anaconda3/envs/python3/lib/python3.6/site-packages/s3transfer-0.5.0 .dist-信息/元数据'

有谁知道如何解决这个问题?提前致谢!

在此处输入图像描述

0 投票
1 回答
85 浏览

python-3.x - AWS 最大 BadRequestException 重试次数达到查询使用数据 API 查询 RDS 无服务 Aurora

我创建了一个 Lambda 函数,该函数使用 awswrangler 数据 api 从查询中读取来自 RDS 无服务器 Aurora PostgreSQL 数据库的数据。该查询包含一个条件,即 ID 列表。如果查询的 id 少于 1K,则效果很好,如果超过 1K,我会收到以下消息:

Maximum BadRequestException retries reached for query

一个示例查询是:

我调整了无服务器 RDS 实例以强制缩放并增加 lambda 函数的并发性。有没有办法解决这个问题?

0 投票
1 回答
64 浏览

python-3.x - 当列表很大时,将 SQL Where IN 子句拆分为 Python 中的较小请求

我已经使用 python 设置了一个 AWS Lambda 函数以从 CSV 中提取请求,然后根据此请求查询 AWS 无服务器 Aurora PostgreSQL 数据库。该函数在请求小于 1K 时起作用,但由于数据 API 中的硬限制而出现错误。一旦达到此限制,我试图找出一种方法将查询分解为更小的查询,但不确定如何在 python 中执行此操作。有人可以建议一种将请求分解成更小块的方法,这样我就不会达到数据 API 限制吗?

使用的代码片段:

0 投票
0 回答
85 浏览

pyspark - 在 AWS Glue 作业中使用“awswrangler”和“pyodbc”从 Microsoft SQL Server 读取数据时出错[Spark 2.4,Python 3(Glue 版本 2.0)]

  1. Python 中的代码——</li>
  1. 我在我的 AWS Glue 作业中使用pyodbc 命名的 python 轮pyodbc-4.0.32-cp37-cp37m-linux_x86_64.whl
  • 钥匙:--additional-python-modules
  • 值:S3 路径。
  1. pyodbc使用 AmazonLinux Docker Image 创建了上面的轮子。参考在 AWS Glue 2.0 作业 (amazon.com) 中使用外部 Python 库,附上 Pyodbc 轮文件。

  2. 在 CloudWatch 中,我可以看到包括 pyodbc 和 aws wrangler 在内的所有软件包在 Glue 作业运行期间都已成功安装。

  1. 现在我收到了这个奇怪的错误- ImportError: libodbc.so.2: cannot open shared object file: No such file or directory 2021-11-09 11:18:29,088 ERROR [main] glue.ProcessLauncher (Logging.scala: logError(70)):来自 Python 的错误:Traceback(最近一次调用最后一次):文件“/tmp/load-assignment.py”,第 3 行,来自 pyodbc。初始化导入* ImportError:libodbc.so.2:无法打开共享对象文件:没有这样的文件或目录

  1. 由于导入错误,无法导入 pyodbc 包 - libodbc.so.2 不存在。如果您能在这个问题上帮助我,我将不胜感激。谢谢。
0 投票
0 回答
39 浏览

python - 使用 pyspark 和 python 从 AWS S3 读取数据。(阅读所有列:分区列也)

我已将 Spark 数据帧以 Parquet 格式 partitionby 列“channel_name”保存到 AWS S3。下面的代码是我如何保存到 S3:

频道名称 开始时间戳 价值 离群值
温度 2021-07-19 07:27:51 21 错误的
温度 2021-07-19 08:21:05 24 错误的
速度 2021-07-19 08:20:18 22 错误的
速度 2021-07-19 08:21:54 26 错误的
温度 2021-07-19 08:21:23 25 错误的
温度 2021-07-16 08:22:41 88 错误的

由于它是按“channel_name”分区的,现在在从 S3 读取相同数据时,它缺少该列“channel_name”。下面是我的 pyspark 和 python 代码。

对于 Python,我使用的是 AWS 牧马人:

这就是没有列“channel_name”的 df 的样子。

开始时间戳 价值 离群值
2021-07-19 07:27:51 21 错误的
2021-07-19 08:21:05 24 错误的
2021-07-19 08:20:18 22 错误的
2021-07-19 08:21:54 26 错误的
2021-07-19 08:21:23 25 错误的
2021-07-16 08:22:41 88 错误的

如何读取包括分区列在内的完整数据,如果有其他选择,请告诉我。

0 投票
1 回答
25 浏览

amazon-web-services - 在 AWS Wrangler 上部署模型时自动执行日期参数

我在本地机器上构建了一个 XGBoost 模型,它获取训练数据并在测试数据集上验证模型。但是,由于训练数据是每月创建的,因此我对日期值进行了硬编码。训练数据是根据我传递的日期参数创建的。例如,jan = dt(2021,1,1)。

我现在必须自动化该过程,因为模型必须部署在 AWS 上,并且应该每月运行一次,而无需编辑代码。我应该如何将日期参数传递给 AWS Wrangler,以便流程自动化,并且代码将每月在新数据集上执行一次。

0 投票
0 回答
43 浏览

python - AWS Data Wrangler 分块:“长度不匹配:预期轴有 28680 个元素,新值有 100000 个元素”

加载镶木地板文件并收到以下错误。

我的 parquet 文件包含 5,128,680 行,它仅加载 5,100,000 行,而不加载 28,680 条记录和代码,如下所示:

错误 :