Abh*_*hek 3 hadoop scala 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
Run Code Online (Sandbox Code Playgroud)
首先,你应该明确你想要什么。在您的 examplek 中,您正在运行一个 map 函数,因此看起来您正在尝试获取 RDD 的每个字段的长度,而不是 RDD 的大小。
sc.textFile将所有内容加载为Strings,因此您可以在每个字段上调用 length 方法。Paralellize 将信息并行化为 Int,因为您的列表由整数组成。
如果你想要一个 RDD 的大小,你应该在 RDD 上运行计数,而不是在每个字段上
mark.count()
Run Code Online (Sandbox Code Playgroud)
这将返回 6
如果您想要每个元素的大小,您可以String根据需要将它们转换为,但这看起来像是一个奇怪的要求。它会是这样的:
mark.map(l => l.toString.length).collect
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12776 次 |
| 最近记录: |