一、仅使用pyspark运行超小程序
>>> logFile="/hadoop-2.8.5/README.txt"
>>> logData=sc.textFile(logFile).cache()
>>> numAs=logData.filter(lambda s:'a' in s).count()
>>> numBs=logData.filter(lambda s:'b' in s).count()
>>> print("Line with a:%i,line with b:%i" % (numAs,numBs))
统计成功。
注意:我们不会在以下示例中创建任何SparkContext对象,因为默认情况下,当PySpark shell启动时,Spark会自动创建名为sc的SparkContext对象。如果您尝试创建另一个SparkContext对象,您将收到以下错误 - “ValueError:无法一次运行多个SparkContexts”。 来源:https://www.jianshu.com/p/5a42fe0eed4d
二、使用spark-submit提交python程序
1、python代码:
from pyspark import SparkContext
logFile = "/hadoop-2.8.5/README.txt"
sc = SparkContext("local", "first 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("Line with a:%i,lines with b :%i" % (numAs, numBs))
2、本人是在win10电脑上的jupyter上运行的,结果默认保存为.ipynb,需要另存为.py文件
(这里报错无所谓,因为我的路径是linux中的,win10上本来就没这个文件)
3、spark-submit提交
4、运行结果: