问题标签 [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.
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 客户端、资源和会话的直觉,那将不胜感激。
python - 在 python 中使用 aws wrangler 获取视图模式
我正在尝试创建一个 python 脚本,它将获取所有可用表和视图的架构。
获取表架构
wr.athena.show_create_table
现在,视图呢?我没有找到任何可以获取视图架构的函数。
我也尝试过SHOW CREATE VIEW
,但它给了我空洞的结果。感谢任何帮助。提前致谢。
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'}
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-信息/元数据'
有谁知道如何解决这个问题?提前致谢!
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 函数的并发性。有没有办法解决这个问题?
python-3.x - 当列表很大时,将 SQL Where IN 子句拆分为 Python 中的较小请求
我已经使用 python 设置了一个 AWS Lambda 函数以从 CSV 中提取请求,然后根据此请求查询 AWS 无服务器 Aurora PostgreSQL 数据库。该函数在请求小于 1K 时起作用,但由于数据 API 中的硬限制而出现错误。一旦达到此限制,我试图找出一种方法将查询分解为更小的查询,但不确定如何在 python 中执行此操作。有人可以建议一种将请求分解成更小块的方法,这样我就不会达到数据 API 限制吗?
使用的代码片段:
pyspark - 在 AWS Glue 作业中使用“awswrangler”和“pyodbc”从 Microsoft SQL Server 读取数据时出错[Spark 2.4,Python 3(Glue 版本 2.0)]
- Python 中的代码——</li>
- 我在我的 AWS Glue 作业中使用
pyodbc
命名的 python 轮pyodbc-4.0.32-cp37-cp37m-linux_x86_64.whl
- 钥匙:
--additional-python-modules
- 值:S3 路径。
我
pyodbc
使用 AmazonLinux Docker Image 创建了上面的轮子。参考在 AWS Glue 2.0 作业 (amazon.com) 中使用外部 Python 库,附上 Pyodbc 轮文件。在 CloudWatch 中,我可以看到包括 pyodbc 和 aws wrangler 在内的所有软件包在 Glue 作业运行期间都已成功安装。
- 现在我收到了这个奇怪的错误- 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:无法打开共享对象文件:没有这样的文件或目录
- 由于导入错误,无法导入 pyodbc 包 - libodbc.so.2 不存在。如果您能在这个问题上帮助我,我将不胜感激。谢谢。
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 | 错误的 |
如何读取包括分区列在内的完整数据,如果有其他选择,请告诉我。
amazon-web-services - 在 AWS Wrangler 上部署模型时自动执行日期参数
我在本地机器上构建了一个 XGBoost 模型,它获取训练数据并在测试数据集上验证模型。但是,由于训练数据是每月创建的,因此我对日期值进行了硬编码。训练数据是根据我传递的日期参数创建的。例如,jan = dt(2021,1,1)。
我现在必须自动化该过程,因为模型必须部署在 AWS 上,并且应该每月运行一次,而无需编辑代码。我应该如何将日期参数传递给 AWS Wrangler,以便流程自动化,并且代码将每月在新数据集上执行一次。
python - AWS Data Wrangler 分块:“长度不匹配:预期轴有 28680 个元素,新值有 100000 个元素”
加载镶木地板文件并收到以下错误。
我的 parquet 文件包含 5,128,680 行,它仅加载 5,100,000 行,而不加载 28,680 条记录和代码,如下所示:
错误 :