我如何找到以下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
首先,您应该明确您想要什么。在您的examplek中,您正在运行一个map函数,因此您似乎在尝试获取RDD每个字段的长度,而不是RDD大小。
sc.textFile
将所有内容加载为Strings
,因此您可以在每个字段上调用length方法。并行化将信息并行化为整数,因为您的列表由整数组成。
如果您需要RDD的大小,则应在RDD上运行计数,而不是在每个字段上运行
mark.count()
这将返回6
如果需要每个元素的大小,可以String
根据需要将它们转换为,但这看起来很奇怪。将会是这样的:
mark.map(l => l.toString.length).collect
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句