首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在RAPIDS中实现SQL Groupby

如何在RAPIDS中实现SQL Groupby
EN

Stack Overflow用户
提问于 2018-11-20 16:49:08
回答 2查看 220关注 0票数 1

我正在寻求翻译一个SQL查询来使用RAPIDS。请考虑以下简化查询:

代码语言:javascript
复制
(SELECT min(a), max(b), c
FROM T
GROUP BY c) AS result

我已经验证了下面的代码,但是这是最佳的解决方案吗?是否需要对组密钥进行排序?有没有一种更干净/更地道的方式来写它呢?

代码语言:javascript
复制
from pygdf import DataFrame as gdf

T = gdf(...)
df = gdf({'a':T.a, 'c':T.c}).groupby('c').min().sort_values(by='c')
df['max_b'] = gdf({'b':T.b, 'c':T.c}).groupby('c').max().sort_values(by='c').max_b
result = gdf({'a': df.min_a, 'b': df.max_b, 'c':df.c})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-23 20:35:28

您可以使用.agg函数重写您的聚合,使其更加简单:

代码语言:javascript
复制
from pygdf import DataFrame as gdf

T = gdf(...)
df = gdf({'a':T.a, 'b': T.b, 'c':T.c}).groupby('c').agg({'a': 'min', 'b': 'max'})
result = gdf({'a': df.min_a, 'b': df.max_b, 'c':df.c})
票数 3
EN

Stack Overflow用户

发布于 2019-07-22 19:17:55

您可以使用BlazingSQL,这是一个构建在RAPIDS之上的SQL引擎。完全公开,我为BlazingSQL工作。

代码语言:javascript
复制
from blazingsql import BlazingContext
bc = BlazingContext()

# Create Table from GDF
bc.create_table('myTableName', gdf)

# Query
result = bc.sql('SELECT min(a), max(b), c FROM main.myTableName GROUP BY c').get()
result_gdf = result.columns

#Print GDF 
print(result_gdf)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53397747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档