我正在尝试查看
的返回值的内容labID = fields.map(lambda x: x.split('ID')(1).trim())
当我这样做时:
print(labID)
我看到的是:
PythonRDD[97] at RDD at PythonRDD.scala:48
我在Scala中看到了这个例子,但我找不到pyspark的例子。 Scala示例:
myRDD.collect().foreach(println) or myRDD.take(n).foreach(println)
我如何使用pyspark执行此操作?
答案 0 :(得分:1)
当您致电collect()
或take()
时,您会收到rdd
中的元素列表。然后,您可以像打开任何普通的python列表一样打印这些值。
由于collect()
费用昂贵且速度慢,我建议您先尝试一下数据样本,以确保其正确无误:
labID = fields.map(lambda x: x.split('ID')[1].trim())
labID_sample = labID.take(5) # returns the first 5 elements in the rdd as a list
print(labID_sample) # print the list
如果您对结果看起来正确感到满意,那么您可以抓住整个事情:
labID_all = labID.collect() # returns all elements in the rdd as a list
print(labID_all)
请注意,这些操作会将数据带回本地内存,通过主节点。如果您有大量数据,这可能会非常慢或可能会失败。在这种情况下,您应该考虑使用saveAsTextFile()
将rdd写入磁盘。