并行化火花DF的二进制数组列用于ML预测

时间:2017-12-18 19:34:49

标签: scala apache-spark dataframe pyspark

我有一个带有UserId,Type_list的火花数据框,并且已经训练好的ML模型存储在磁盘上

  

TypeExpList = [动画,游戏,衣物,医疗,OTH]

DF看起来像:

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可以更加并行化,这可以用更好的方式完成吗?

0 个答案:

没有答案