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

完。

你可能感兴趣的:(spark的collect()函数)