小编Pet*_*lev的帖子

Amazon Athena 获取过去一小时的数据

我在 AWS Athena 表中有一些数据行,我正在尝试获取过去 1 小时的数据。我正在使用 awswrangler,我将在下面发布我的代码片段。基本上,我不想使用 Python 查询所有数据,然后仅过滤掉最后 1 小时的数据,而是想在 Athena SQL 查询中执行此操作,以便获得更快的响应(从而缩短程序的执行时间)。我的代码是:

import awswrangler as wr
import boto3

session=boto3.Session()
df = wr.athena.read_sql_query(f"""SELECT *
                                  FROM data_table""",
                                  database="database",
                                  keep_files = False,
                                  boto3_session = session).sort_values('timestamp')
Run Code Online (Sandbox Code Playgroud)

我的进度:我可以使用 获取当前时间戳"SELECT CURRENT_TIMESTAMP",但这将以日期格式返回时间戳。为了获得最后 1 小时,我的想法是将 1 小时也转换为毫秒,然后从当前时间戳的毫秒中减去它并将其应用为过滤器。

笔记!timestamp表中的单位是毫秒。

sql amazon-s3 amazon-web-services amazon-athena aws-glue

3
推荐指数
1
解决办法
5386
查看次数

Pandas 将所有列转换为 int64 类型

我有以下代码:

import pandas as pd

df = pd.DataFrame({'a': [2], 'b': ['1'], 'c': ['3'], 'd': [5]})
print(df.dtypes)
Run Code Online (Sandbox Code Playgroud)

显然我明白了

a     int64
b    object
c    object
d     int64
dtype: object
Run Code Online (Sandbox Code Playgroud)

作为输出。我想将每一列映射到 int64,但是自动映射 - 我不想手动遍历所有列并将它们每一列设置为 int64。有没有一种简单或巧妙的方法可以做到这一点?

PS 我知道我可以通过使用将类型更改为 int64 pd.to_numeric(df['b']),例如。我想对所有列执行此操作。

python pandas

2
推荐指数
1
解决办法
4285
查看次数