val aggregatedBigrams = bigramTokens.reduceByKey({(x:(Int,Int), y:(Int,Int)) => (x._1+y._1, x._2+y._2)}, numReducers)
我见过很多如上所述的火花代码,但是我真的被下划线所困惑,例如x._1
,我在网上搜索并被告知下划线表示获取元组的元素,所以我假设x._1 = x(0)
,所以在pyspark,我应该写作x[0]
?pyspark中这个spark代码(scala)的等效表达式是什么?
另外,为什么要写出像x:(Int,Int)
这样的类型?我必须在pyspark做类似的事吗?
一般来说,这些问题表明你有一些阅读了做一下斯卡拉和Python,差异强/弱,动态/静态打字等。 – sgvd
非常感谢!我也看到了Scala中的类型转换,比如'val(totalUnigramsFG,_)= processedUnigrams.map {x =>(x._2._1.toLong,x._2._2.toLong)} .reduce {(x: (Long,Long),y:(Long,Long))=>(x._1 + y._1,x._2 + y._2)}',我必须在Python中明确地做到这一点吗? – xxx222
我假设我们也不需要在pyspark中使用'.toLong'? – xxx222