Pyspark RDD收集前163行 [英] Pyspark RDD collect first 163 Rows

查看:152
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆