像普通Seq一样对待Spark RDD

chu*_*uwy 5 functional-programming scala apache-spark rdd

我有一个用于转换JSON的CLI应用程序.它的大多数代码是mapping,flatMapping和遍历forJValues列表.现在我想把这个应用程序移植到Spark,但似乎我需要重写所有函数1:1,但写RDD[JValue]而不是List[JValue].

函数是否有任何方式(如类型类)接受列表和RDD.

Hol*_*den 2

如果您想共享处理本地和抽象代码的代码,您可以将传入的 lambdas/匿名函数移动到map命名flatMap函数中并重新使用它们。

如果您想重新使用逻辑来排序地图/平面地图/等,您还可以在两者之间创建隐式转换,并将其转换RDDSeq自定义特征,该特征仅具有共享函数,但隐式转换可能会变得非常混乱,我不这样做我真的不认为这是一个好主意(但如果您不同意我的观点,您可以这样做:))。