python - 雪花Snowpark Python : Group By and Concat

标签 python snowflake-cloud-data-platform

我在雪花中有这个

<表类=“s-表”> <标题> id_request 警报代码 <正文> 100 R70 100 R69 100 R54 101 R24 101 R93

我想把它变成这样

<表类=“s-表”> <标题> id_request alert_all <正文> 100 R70,R69,R54 101 R24,R93

我尝试写这个,但似乎是错误的

df_alerts_3 = df_alerts_2.groupBy('id_request')\
.agg(concat_ws(lit(','), array_agg('alert_code')).alias('alert_all'))

非常感谢您的帮助

最佳答案

CONCAT_WS在单行上下文中连接字符串。要跨多行连接字符串,您需要使用聚合函数 LISTAGG .

Snowpark 等效项是 snowflake.snowpark.functions.listagg :

Returns the concatenated input values, separated by delimiter string

df.group_by(df.col1).agg(listagg(df.col2. ",")).within_group(df.col2.asc())
df.select(listagg(df["col2"], ",", False)

关于python - 雪花Snowpark Python : Group By and Concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75680447/

相关文章:

snowflake-cloud-data-platform - 我可以将 "."作为雪花中列名称的一部分吗?

python - 如何用openCV对准绿带和红外图像?

python - 没有 NumPy 的矩阵计算器 - 将参数传递给其他函数

python - 使用 PyYAML 在 yaml 中将文档作为原始字符串加载

python - Flask-sqlalchemy 将意外变量存储到数据库中

timestamp - 在 SQL Snowflake 中将时间戳截断为自定义时间单位

sql - 如何为 DateDiff 动态传入 date_or_time_part?

javascript - 在 JavaScript 中构建 Flask url 会生成空 url

snowflake-cloud-data-platform - Snowflake 查询中的 CONNECT BY

terraform - 是否可以部署具有不同访问级别的 terraform 资源,如果可以,如何?