小编Niv*_*hen的帖子

如何使用Boto3 get_query_results方法从AWS Athena创建数据框

我正在使用AWS Athena从S3查询原始数据。由于Athena将查询输出写入S3输出存储桶,所以我曾经这样做:

df = pd.read_csv(OutputLocation)
Run Code Online (Sandbox Code Playgroud)

但这似乎是一种昂贵的方法。最近,我注意到该get_query_results方法boto3返回一个复杂的结果字典。

client = boto3.client('athena')
response = client.get_query_results(
        QueryExecutionId=res['QueryExecutionId']
        )
Run Code Online (Sandbox Code Playgroud)

我面临两个主要问题:

  1. 如何将结果格式化get_query_resultspandas数据框?
  2. get_query_results仅返回1000行。如何使用它获得两百万行?

python amazon-web-services dataframe pandas amazon-athena

8
推荐指数
4
解决办法
5064
查看次数

当 S3 是目的地时,pandas.DataFrame.to_parquet 失败

我有一个 Pandas 数据框,我试图将它作为镶木地板文件保存到 S3 中:

dftest = pd.DataFrame({'field': [1,2,3]})
dftest.to_parquet("s3://bucket_name/test.parquet", engine='pyarrow', 
compression='gzip')
Run Code Online (Sandbox Code Playgroud)

我得到:“FileNotFoundError:bucket_name/test.parquet”

python pandas parquet pyarrow

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

如何将两个表连接在一起并返回两个表中的所有行,以及将其中的一些列合并为一列

我正在使用 SQL Server 2012 并希望查询以下内容:

我有两个表,其中的列大部分不同。(一个表有 10 列,另一个表有 6 列)。然而,它们都包含一个包含 ID 号的列和另一个包含类别名称的列。

  1. 表之间的 ID 号可能会重叠(例如,1 个表可能有 200 个不同的 ID,而其他 900 个表可能有 120 个 ID)。
  2. 每个表的类别名称都不同且唯一。

现在我希望有一个表,其中包含两个表的所有行,并具有一个 ID 列和一个 Category_name 列(总共 14 列)。因此,如果相同的 ID 在表 1 中有 3 条记录,在表 2 中有另外 5 条记录,我希望拥有所有 8 条记录(8 行)

我认为这里复杂的事情是有一个“Category_name”列。

我尝试了以下操作,但是当两个表中都没有空值时,我只得到一条记录而不是两条记录:

SELECT isnull(t1.id, t2.id) AS [id]
    ,isnull(t1.[category], t2.[category_name]) AS [category name]
FROM t1
FULL JOIN t2
    ON t1.id = t2.id;
Run Code Online (Sandbox Code Playgroud)

关于正确的完成方法有什么建议吗?

sql database sql-server join

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