如何找到以下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
答案 0 :(得分:2)
首先,您应该明确说明您想要的内容。在您的示例中,您正在运行一个map函数,因此看起来您正在尝试获取RDD的每个字段的长度,而不是RDD大小。
docker-compose -f local.yml build
将所有内容加载为sc.textFile
,因此您可以在每个字段上调用length方法。 Paralellize将信息并行化为Ints,因为您的列表是由整数组成的。
如果你想要RDD的大小,你应该在RDD上运行,而不是在每个字段上运行
Strings
这将返回6
如果你想要每个元素的大小,你可以根据需要将它们转换为mark.count()
,但它看起来像一个奇怪的要求。它将是这样的:
String