由于 RDD 是不可变的——emptyRDD 的用例是什么
As RDDs are immutable - what will be the use case for emptyRDD
rdd = sparkContext.emptyRDD()
这个方法需要什么。我们可以用这个空的 RDD 做什么。
任何人都可以提供一些用例或想法。我们可以在哪里使用这个空的 rdd?
由于 RDD 是不可变的 - emptyRDD 的用例是什么
老实说我从来没有用过它,但我猜它在那里是因为一些转换需要一个 RDD 作为参数,不管它是否为空。假设您需要执行外部连接,并且您要连接的 RDD 取决于可以确定其是否为空的条件,例如:
full_rdd.fullOuterJoin(another_full_rdd if condition else sparkContext.emptyRDD())
如果不满足条件,结果显示(key, (full_rdd[key], None)
类型的对。我认为这是根据条件执行完全连接的更优雅的方式,但是,正如我所说,我从来不需要这样的东西,我希望其他人能找到更好的例子。
少数病例:
如果你的方法必须return一个RDD
(而不是一个空值)即使在没有任何匹配的情况下,那么一个emptyRDD 是准确的,
如果你想做一个循环,从 0 到 n RDD
联合成一个:0 的一个将是空的 rdd,然后 rdd = rdd.union(anotherOne)
for每个下一个循环。
rdd = sparkContext.emptyRDD()
这个方法需要什么。我们可以用这个空的 RDD 做什么。
任何人都可以提供一些用例或想法。我们可以在哪里使用这个空的 rdd?
由于 RDD 是不可变的 - emptyRDD 的用例是什么
老实说我从来没有用过它,但我猜它在那里是因为一些转换需要一个 RDD 作为参数,不管它是否为空。假设您需要执行外部连接,并且您要连接的 RDD 取决于可以确定其是否为空的条件,例如:
full_rdd.fullOuterJoin(another_full_rdd if condition else sparkContext.emptyRDD())
如果不满足条件,结果显示(key, (full_rdd[key], None)
类型的对。我认为这是根据条件执行完全连接的更优雅的方式,但是,正如我所说,我从来不需要这样的东西,我希望其他人能找到更好的例子。
少数病例:
如果你的方法必须return一个
RDD
(而不是一个空值)即使在没有任何匹配的情况下,那么一个emptyRDD 是准确的,如果你想做一个循环,从 0 到 n
RDD
联合成一个:0 的一个将是空的 rdd,然后rdd = rdd.union(anotherOne)
for每个下一个循环。