spark的collect()函数

  1. spark中的collect操作是将远程数据通过网络传输到本地,如果数据量特别大的话,会造成很大的网络压力,更为严重的问题是会造成driver端的内存溢出。

  2. foreach是依次遍历远程集群上的RDD中的元素。collect()和foreach,二者的区别有点类似于Python中的range函数和xrange函数。

code1

tb = hiveContext.sql("select * from tb")
type(tb) 是一个pyspark.sql.dataframe.DataFrame
type(tb.columns)是一个list;

code2

tb1 = hiveContext.sql("select * from tb1").collect()
type(tb1)变成了一个list;

变成一个list之后,可以采用循环的方式去遍历其中的每一个数据。

code3

tb2 = hiveContext.sql("select * from tb2").toPandas()
type(tb2)变成了一个pandas.core.frame.DataFrame
type(tb2.columns)变成了一个pandas.indexes.base.Index
type(tb2.index)变成了一个pandas.indexes.range.RangeIndex

完。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容