Эта ошибка связана с тем, что print
не является функцией в Python 2.6.
Вы можете либо определить вспомогательный UDF, который выполняет печать, либо использовать библиотеку __ future __ для обработки print
как функции:
>>> from operator import add
>>> f = sc.textFile("README.md")
>>> def g(x):
... print x
...
>>> wc.foreach(g)
или
>>> from __future__ import print_function
>>> wc.foreach(print)
Однако, я думаю, было бы лучше использовать collect()
, чтобы вернуть содержимое RDD драйвер, потому что foreach
выполняется на рабочих узлах, и выходы могут не обязательно отображаться в вашем драйвере / оболочке (вероятно, он будет работать в режиме local
, но не при работе в кластере).
>>> for x in wc.collect():
... print x