仅对RDD的子集执行操作

Ark*_*ski 10 apache-spark

我想仅对RDD的一个子集执行一些转换(以便更快地在REPL中进行实验).

可能吗?

RDD有take(num: Int): Array[T]方法,我想我需要类似的东西,但返回RDD [T]

Sea*_*wen 20

你可以RDD.sample用来获得一个RDD,而不是一个Array.例如,在没有替换的情况下采样~1%:

val data = ...
data.count
...
res1: Long = 18066983

val sample = data.sample(false, 0.01, System.currentTimeMillis().toInt)
sample.count
...
res3: Long = 180190
Run Code Online (Sandbox Code Playgroud)

第三个参数是种子,幸运的是在下一个Spark版本中是可选的.