Pyspark RDD首先收集163排

whe*_*els 2 python apache-spark rdd pyspark

有没有办法获得rdd的前163行而不转换为df?

我尝试了类似的东西newrdd = rdd.take(163),但返回一个列表,并rdd.collect()返回整个rdd.

有没有办法做到这一点?或者如果没有,有没有办法将列表转换为rdd?

zer*_*323 9

它不是很有效但你可以zipWithIndexfilter:

rdd.zipWithIndex().filter(lambda vi: vi[1] < 163).keys()
Run Code Online (Sandbox Code Playgroud)

在实践中更有意义的简单takeparallelize:

sc.parallelize(rdd.take(163))
Run Code Online (Sandbox Code Playgroud)