这是我使用的代码。
from __future__ import print_function
import sys
from pyspark.sql import SparkSession
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')
import requests
if __name__ == "__main__":
s = Session()
toGet = s.get
spark = SparkSession\
.builder\
.appName("PythonDockerRepoStat")\
.getOrCreate()
lines = spark.read.text('/data/urls.txt').rdd.map(lambda r: r[0])
res = lines.flatMap(lambda x: x.split("\n"))\
.map(lambda x: toGet(x))
output = res.collect()
print(output)
但是,我收到了这个错误: ImportError:没有名为requests.sessions的模块
答案 0 :(得分:1)
启动Spark作业时,必须可以访问所有依赖项:
扩展路径:
sys.path.append('/usr/local/lib/python2.7/site-packages')
只会影响本地驱动程序解释程序。要设置执行程序环境变量,您可以:
$SPARK_HOME/conf/spark-env.sh
spark.executorEnv.[EnvironmentVariableName]
配置选项(例如,通过修改$SPARK_HOME/conf/spark-defaults.conf
或设置相应的SparkConf
密钥。同时,您应确保在每个工作节点上安装/访问requests
(如果不使用本地/伪分布式模式)。