我有这样的代码:
rdd2 = rdd1.groupByKey().flatMap(lambda userList: process_full(list(userList[1])))
def process_full(given_list):
num_times = len(given_list)
new_list = []
for i in range(1,num_times):
new_list.append((given_list[i][1] - given_list[i-1][1],
given_list[i][2] , given_list[i][3], **user_id**))
return new_list
其中rdd1包含user_id
作为密钥。现在,在process_full
函数内部,我将创建一个列表,其中包含rdd1
中的许多其他元素(来自不同的列)。我想将我分组的user_id
附加到在process_full
中创建的列表中。
有什么办法吗?
答案 0 :(得分:1)
对数据框进行分组的键位于userList[0]
变量中。您可以简单地将其添加为process_full
方法的输入:
def process_full(key, given_list):
// Same as before but add the key to new_list
以及lambda函数中:
rdd2 = rdd1.groupByKey().flatMap(lambda userList: process_full(userList[0], list(userList[1])))