PySpark-UDF接收数据帧的切片

时间:2020-03-04 17:56:57

标签: dataframe pyspark pyspark-dataframes

我有一个具有以下结构的大型PySpark数据帧,其中k_ *是键,其他列是“数据”列(数字):

k_a  k_b  k_c  d  e
 a    1    x   4  7
 a    1    x   5  8
 b    3    x   6  9
...

我要做的是基于切片进行一些计算,这需要使用特定的自定义UDF来完成。但是,此函数应接收“切片”,其中切片由键的唯一组合定义:

(k_a=1; k_b=1; k_c=x:)

d e
---
4 7
5 8
------------------
(k_a=b; k_b=3; k_c=x:)

d e
---
6 9

此外,此UDF产生值列表(一行),因此目标是通过将UDF应用于所有切片来产生新的数据帧。 我的第一种方法是仅将键的现有唯一组合传递给UDF,然后过滤UDF内的数据帧,但是该数据帧太大而无法广播,因此我无法采用这种方法。您是否对使用PySpark的分布式计算功能执行此操作有任何想法?

0 个答案:

没有答案