我有一个带有UserId,Type_list的火花数据框,并且已经训练好的ML模型存储在磁盘上
DF看起来像:TypeExpList = [动画,游戏,衣物,医疗,OTH]
UserId| TypeExpList #Type list is this array corresponding entry's [MOVIE,GAMES,CLOTHING,MEDICAL,OTH]
JAS123 |[1,0,1,0,1] #User expenditure on Movie,CLOTHING,OTHER Category
ASP123 |[0,1,0,1,0] #User expenditure on GAMES & MEDICAL
DPS123 |[1,0,1,0,1] #user expenditure on MOVIE,CLOTHING & OTHER
POQ133 |[0,0,0,1,0] #User Expenditure on MEDICAL only
现在对于每个用户,如果针对TypeExpList的Bin为0,我想翻转该位并使用我的ML模型预测y标签,例如
JAS123 orignal列表是[1,0,1,0,1],所以第一次使用的列表将是
[1,1,1,0,1]并调用.predict
,这将给出一些Y标签概率。
第二次[1,0,1,1,1]用于调用.predict
,这将给出一些y
标签概率。最高概率的位翻转将是
我最后的标签。
示例2:
POQL112 orignal list is [0,0,0,1,0]
1) [1,0,0,1,0]
2) [0,1,0,1,0]
3) [0,0,1,1,0]
4) [0,0,0,1,1]
所有4个将被给予ML模型以对结果进行评分,并且需要最高概率。
我知道我可以使用循环遍历DF中的所有值来完成它 但是我想知道,因为Spark可以更加并行化,这可以用更好的方式完成吗?