Pyspark RDD收集前163行 [英] Pyspark RDD collect first 163 Rows
本文介绍了Pyspark RDD收集前163行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在不转换为df的情况下获取rdd的前163行?
我尝试了类似 newrdd = rdd.take(163)
的方法,但是返回了一个列表,而 rdd.collect()
返回了整个rdd./p>
有没有办法做到这一点?还是没有办法将列表转换为rdd?
解决方案
效率不是很高,但是您可以 zipWithIndex
和 filter
:
rdd.zipWithIndex().filter(lambda vi:vi [1]< 163).keys()
实际上,简单地 take
和 parallelize
更有意义:
sc.parallelize(rdd.take(163))
Is there a way to get the first 163 rows of an rdd without converting to a df?
I've tried something like newrdd = rdd.take(163)
, but that returns a list, and rdd.collect()
returns the whole rdd.
Is there a way to do this? Or if not is there a way to convert a list into an rdd?
解决方案
It is not very efficient but you can zipWithIndex
and filter
:
rdd.zipWithIndex().filter(lambda vi: vi[1] < 163).keys()
In practice it make more sense to simply take
and parallelize
:
sc.parallelize(rdd.take(163))
这篇关于Pyspark RDD收集前163行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文