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

完。

    原文作者:小甜瓜Melon
    原文地址: https://www.jianshu.com/p/e71c7b5af8c3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞