Python for Spark显然比Scala慢。然而,易于学习,并且受益于我最喜爱的库。在我看来,Python是大数据/机器学习领域中原型设计的完美语言。
而jupyter可以边编程边记录,对于学生党来说是最完美的选择
怎么整合spark与jupyter?
整合spark与Jupyter
方法1. 配置PySpark驱动程序
代码语言:javascript复制export PYSPARK_DRIVER_PYTHON=jupyter-notebook
export PYSPARK_DRIVER_PYTHON_OPTS=" --ip=0.0.0.0 --port=8888"
将这些行添加到您的/.bashrc(或/etc/profile)文件中。
重新启动终端并再次启动PySpark:此时将启动器jupyter
方法2. FindSpark包
使用findSpark包在代码中提供Spark Context。
findSpark包不是特定于Jupyter Notebook,你也可以在你喜欢的IDE中使用这个技巧。
代码语言:javascript复制import findspark
findspark.init()
import pyspark
import random
sc = pyspark.SparkContext(appName="Pi")
num_samples = 100000000
def inside(p):
x, y = random.random(), random.random()
return x*x y*y < 1
count = sc.parallelize(range(0, num_samples)).filter(inside).count()
pi = 4 * count / num_samples
print(pi)
sc.stop()
不同的模式运行pyspark
spark是分为local,standalone,yarn-client,yarn-cluster等运行模式的.
- local模式
import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext("local", "First App")
- standalone 需要传入地址和端口
import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext("spark://192.168.5.129:7077", "First App")
- yarn-client
import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext("yarn-client", "First App")