Pyspark reduceByKey与连接相加

时间:2015-04-18 11:21:16

标签: python apache-spark pyspark

我有以下spark代码创建一个键值对:

columnRDD = dataSplit.flatMap(lambda x: enumerate(x)).sortByKey().persist(StorageLevel.MEMORY_AND_DISK)

然后我有以下工作正常作为列元素的计数:

countRDD = columnRDD.map(lambda line: (line[0], 1)).reduceByKey(lambda v1,v2: v1+v2)

我有以下代码,我现在想要实际添加数字以创建总和:

sumRDD = columnRDD.reduceByKey(lambda v1,v2: v1+v2)

它产生了这个结果:

(1, u'189641895118950189491896018958189561905618948189691896118959189571896818966189671897118972183531811418349183481834718346190531905218305183061831818317183161831518314183131834518322183231832118304182831828218281182791829118311190551905418297182941829218296183031830118302183001829518293183441828018312182991829818310183091830818307182631826918268182671827818277182761827518274182731828818272182601826618265182641824218243182591825818262182891828718261182901825718241182401823918271182861827018285182841822318222182211822018238182561825418255182531823718252182361823518234182501821318214182121893718881189361893518934188801893318947189461894518944181631814218141181991819718177181731819418193181921818518195181841819618174181751817618172181821818318201181811820018098181501813718138182481824618232182451824418219182301823118218182171822918216182151822618209182251822418208182061820318202182281821118210182271835818360183591836118362183361833418337183551835618357190161881318812188111881018792190461904519044188201881818819188141894218943189411894018883189391895518118181191866618665186581867018669186921820719026190281902518743186591869318657186911869018689186881868718668186861869918698186711869718696186951869418991189901898919001190021899918180181781813618148181491813518147181461814518)

这些数字看起来像:18964,18964

1 个答案:

答案 0 :(得分:0)

我必须将它实际转换为浮点数才能将其添加到一起:

.map(lambda line: (line[0], float(line[1])))