之前对 SQL 还是不是非常熟悉的,但是现在或多或少还是会写一些计算任务。比如最近在推送将所有天级的耗时任务都从传统关系型数据库迁移至 Spark 集群当中进行计算,中间遇到一些有趣的小问题在这里记录一下。
Q: 我想按照某个字段分组并且把一组查询字段连起来得到一个 json 然后把结果作为一个字段应该怎么弄?
A: 这里我的思路是将我们需要 dumps 的字段给拼接起来,然后使用列表将同一个分组里面的是数据组合起来。然后过一个 udf 把列表中的记录处理成数组最后 json.dumps 一下即可。来看个栗子
# 先查询出要操作的目标信息 这一步可以和下面的操作合并,我这里为了方便看拆开了 df = ss.sql(""" SELECT t1.pay_id, t1.pay_money, t1.user_id FROM analytics_db.hd_day_order_record t1 """) # 拼接目标字符串并且组合 df = df.select( df.pay_id, df.pay_money, df.pay_user_id, f.concat_ws('