像普通Seq一样对待Spark RDD

时间:2015-08-26 17:40:02

标签: scala apache-spark functional-programming rdd

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

是否有任何方法(如类型类)可以接受列表和RDD的函数。

1 个答案:

答案 0 :(得分:2)

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

如果您想重新使用逻辑来订购maps / flatMaps / etc,您还可以在RDDSeq之间创建隐式转换到自定义特征共享函数,但隐式转换可能会变得非常混乱,我不认为这是一个好主意(但如果你不同意我,你可以做):)。