如何在Spark中查找RDD的长度

时间:2018-01-14 15:19:55

标签: scala hadoop apache-spark

如何找到以下RDD的长度?

var mark = sc.parallelize(List(1,2,3,4,5,6))

scala> mark.map(l => l.length).collect
<console>:27: error: value length is not a member of Int
   mark.map(l => l.length).collect

1 个答案:

答案 0 :(得分:2)

首先,您应该明确说明您想要的内容。在您的示例中,您正在运行一个map函数,因此看起来您正在尝试获取RDD的每个字段的长度,而不是RDD大小。

docker-compose -f local.yml build将所有内容加载为sc.textFile,因此您可以在每个字段上调用length方法。 Paralellize将信息并行化为Ints,因为您的列表是由整数组成的。

如果你想要RDD的大小,你应该在RDD上运行,而不是在每个字段上运行

Strings

这将返回6

如果你想要每个元素的大小,你可以根据需要将它们转换为mark.count() ,但它看起来像一个奇怪的要求。它将是这样的:

String