我有一个用于转换JSON的CLI应用程序。它的大部分代码是map ping,flatMap ping和使用JValues的for列表进行遍历。现在,我想将此应用程序移植到Spark,但似乎我需要以1:1的方式重写所有函数,但要编写RDD[JValue]而不是List[JValue]

有什么方法(如类型类)让函数接受列表和RDD。

最佳答案

如果要共享用于处理本地和抽象代码的代码,可以将传递给map/flatMap的lambdas/匿名函数移动到命名函数中,然后重新使用它们。

如果要重用逻辑来订购map/flatMaps/etc,还可以在RDDSeq之间创建隐式转换,使之成为仅具有共享功能的自定义特征,但是隐式转换会变得很困惑,并且我真的不认为这是个好主意(但是如果您不同意我的话,可以这样做:)。

关于scala - 将Spark RDD像普通Seq一样对待,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32233202/

10-14 11:49