【问题标题】:RDD not iterable errorRDD不可迭代错误
【发布时间】:2018-06-13 23:00:03
【问题描述】:

我正在练习一些 spark 代码,开始时我遇到了以下错误。

newRDD = sc.textFile("/user/cloudera/sqoop-import/products")

17/03/15 20:41:31 INFO storage.MemoryStore: Block broadcast_1 已存储 作为内存中的值(估计大小 198.0 KB,空闲 419.3 KB)17/03/15 20:41:31 INFO storage.MemoryStore: 块 broadcast_1_piece0 存储为 内存中的字节数(估计大小 23.3 KB,空闲 442.7 KB)17/03/15 20:41:31 INFO storage.BlockManagerInfo: 添加了 broadcast_1_piece0 内存在 192.168.50.129:49855(大小:23.3 KB,免费:530.2 MB) 17/03/15 20:41:31 INFO spark.SparkContext: 创建广播 1 来自 NativeMethodAccessorImpl.java 处的 textFile:-2

for i in newRDD:
...     print(i)
... 

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 TypeError: 'RDD' 对象不可迭代

【问题讨论】:

标签: apache-spark rdd


【解决方案1】:

我的错。我没有对数据使用任何操作。只有转换不会将数据传输到驱动程序,因为所有这些都是惰性求值。

【讨论】:

    【解决方案2】:

    重启你的 Linux 并像这样尝试

    for(el <- newRDD){
    println(el)
    }
    

    RDD 不是要迭代的数字,您最常使用上面的循环来访问每个元素

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 2015-12-22
      • 2021-02-13
      • 2011-12-13
      • 2017-12-13
      • 2016-09-11
      • 2019-01-12
      相关资源
      最近更新 更多