问题描述
我想将 python 列表转换为 RDD、partitionBY 键,然后映射一个将迭代每条记录的函数,即“子列表”。
当我的列表采用以下格式时,我可以分区但无法映射函数:
records = [
[3,['BEP8N',63,19,'A',15,[10,3,22]]],[4,['2KL05',55,44,'B',16,[8,21,13]]],[3,['1MJ03',51,56,[7,23,13,15]]],['26GPP',14,26,[2,27,12]]]
]
records = [
[
[3,12]]]
]
]
一般我使用以下命令
rdd1 = sc.parallelize(records)
newpairRDD = rdd1.partitionBy(2,lambda k: k)
funcRDD = newpairRDD.map(lambda x: def_func(x))
其中 def_func 是一个 python 函数,它迭代记录(子列表)并返回一个新列表,就像这样
def def_func(x):
g=x.copy()
new_list = []
for i in g:
if i[1][2]>50:
new_list.append(i)
return new_list
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)