【发布时间】:2019-11-15 13:38:54
【问题描述】:
我有以下结构的火花数据框:
Operation|RequestURL|RequestBody|IsGetRequest|IsPostRequest
还有一个变量:val n = 100
我想对数据框中的Operation 列执行Group-by。然后,我想为每个组中的n 请求(无排序)获取RequestURL 和RequestBody 列(创建一个新的data-frame/rdd/map)。如果一个组的请求少于 n 个,我想复制该组中的一些行,以确保我从每个组中获取的请求数相同。
在弄清楚如何以优化的方式完成此操作时需要帮助。我愿意使用任何语言 (python/scala) 并将数据框转换为 pandas 或键和值的哈希映射,如果使用 spark data-frame 无法做到这一点。
我已经看到一些使用分组和排序的堆栈溢出解决方案,然后使用 Windows 分区函数来获取 topN 值。
我的问题有何不同 - 就我而言,没有ordering。另外,我想确保每个组的fetching equal number of requests。
【问题讨论】:
标签: python scala apache-spark apache-spark-sql