如何在python中保存变量或RDD中的动作输出

时间:2016-11-16 10:59:43

标签: apache-spark pyspark

我是新手来使用python来激活和实现它。我有一个问题集,我需要将文件的第一行存储在RDD中,然后对其进行更多转换。所以我尝试使用first()动作。但是使用first()动作,它只是向我显示屏幕上的输出但不能将它存储在另一个变量或RDD中。在python中有一种方法可以将操作的输出存储在变量或RDD中吗?

1 个答案:

答案 0 :(得分:0)

第一个()应该在RDD上执行(不在文件上)

假设你有一个RDD开头 - “first()”和“take(1)”都应该起作用....

myvar1 = myRDD.take(1)
myvar2 = myRDD.first()

http://spark.apache.org/docs/latest/api/python/pyspark.html

<强>取(NUM)

获取RDD的第一个num元素。

首先扫描一个分区,然后使用该分区的结果来估计满足限制所需的额外分区数。

请注意,只有在期望结果数组很小的情况下才能使用此方法,因为所有数据都会加载到驱动程序的内存中。

>>> sc.parallelize([2, 3, 4, 5, 6]).cache().take(2)
[2, 3]
>>> sc.parallelize([2, 3, 4, 5, 6]).take(10)
[2, 3, 4, 5, 6]

<强>第一()

返回此RDD中的第一个元素。

>>> sc.parallelize([2, 3, 4]).first()
2