关于分区的RDD基础知识

2024-09-25 00:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在读Spark: RDD operations,我在执行:

In [7]: lines = sc.textFile("data")

In [8]: lines.getNumPartitions()
Out[8]: 1000

In [9]: lineLengths = lines.map(lambda s: len(s))

In [10]: lineLengths.getNumPartitions()
Out[10]: 1000

In [11]: len(lineLengths.collect())
Out[11]: 508524

但我希望我的数据集被分成几个部分,有多少?作为分区数,即1000。你知道吗

然后map()将在每个分区上运行,并返回一个本地结果(然后应该减少),但如果是这种情况,我希望lineLenghts是一个数字列表,长度等于到#分区,而事实并非如此。你知道吗

我错过了什么?你知道吗


Tags: lambdainmapdatalenoutsparkoperations
1条回答
网友
1楼 · 发布于 2024-09-25 00:22:57

len(lineLengths.collect())lineLengths.count()告诉您rdd中的行数。lineLengths.getNumPartitions(),正如您所指出的,是rdd分布在的分区数。rdd的每个分区都包含数据帧的许多行。你知道吗

相关问题 更多 >