RDD不可迭代错误

时间:2017-03-16 03:47:07

标签: apache-spark rdd

我正在练习一些火花代码,并且自己开始时我遇到了以下错误。

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

17/03/15 20:41:31 INFO storage.MemoryStore:阻止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 in   内存在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)
... 

追踪(最近一次通话):   文件“”,第1行,in TypeError:'RDD'对象不可迭代

2 个答案:

答案 0 :(得分:0)

我的坏。我没有对数据使用任何操作。只有转换才能将数据传递给驱动程序,因为所有这些都是一种懒惰的评估。

答案 1 :(得分:0)

重启Linux并尝试这样

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

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