Ответ 1
Оказывается, что работающий. /bin/pyspark интерактивно АВТОМАТИЧЕСКИ НАГРУЖАЕТ SPARKCONTEXT. Вот что я вижу при запуске pyspark:
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 0.9.1
/_/
Using Python version 2.6.6 (r266:84292, Feb 22 2013 00:00:18)
Spark context available as sc.
... так что вы можете либо запустить "del sc" в начале, либо продолжить, и использовать "sc" как автоматически определенный.
Другая проблема с примером заключается в том, что он, похоже, смотрит на обычную локальную файловую систему NFS, тогда как он действительно пытается посмотреть файловую систему HDFS для Hadoop. Я должен был загрузить файл README.md в местоположении $SPARK_HOME, используя перед запуском код "hadoop fs -put README.md README.md".
Ниже приведена модифицированная программа-пример, в которой я запускал интерактивно:
from pyspark import SparkContext
logFile = "README.md"
logData = sc.textFile(logFile).cache()
numAs = logData.filter(lambda s: 'a' in s).count()
numBs = logData.filter(lambda s: 'b' in s).count()
print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
и здесь находится модифицированная версия автономного файла python:
"""SimpleApp.py"""
from pyspark import SparkContext
logFile = "README.md" # Should be some file on your system
sc = SparkContext("local", "Simple App")
logData = sc.textFile(logFile).cache()
numAs = logData.filter(lambda s: 'a' in s).count()
numBs = logData.filter(lambda s: 'b' in s).count()
print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
который я могу выполнить с помощью $SPARK_HOME/bin/pyspark SimpleApp.py