Pyspark在单核本地模式下工作,而在多核本地模式下仅在映射功能内部具有打印指令。但不适用于多核。
这不起作用:
import os
os.environ["PYSPARK_PYTHON"] = "/home/user/anaconda3/bin/python"
from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local[*]").setAppName("My App")
sc = SparkContext(conf = conf)
def parser(s):
e = s.split(',')
return list(map(lambda x: float(x), e))
df = sc.textFile('data.csv').map(parser)
print(df.collect())
但可以进行以下小的更改:
conf = SparkConf().setMaster("local").setAppName("My App")
令人惊讶的是,此更改也可以使用:
def parser(s):
e = s.split(',')
print(e)
return list(map(lambda x: float(x), e))