Python 如何在Spark中使用请求模块?

Python 如何在Spark中使用请求模块?,python,apache-spark,Python,Apache Spark,这是我使用的代码 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 s

这是我使用的代码

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的模块。启动Spark作业时,必须访问以下所有依赖项:

  • 司机翻译
  • 执行口译员
扩展路径:

sys.path.append('/usr/local/lib/python2.7/site-packages')
将只影响本地驱动程序解释器。要设置executor环境变量,您可以:

  • 修改
    $SPARK\u HOME/conf/SPARK env.sh
  • 使用
    spark.executenv.[EnvironmentVariableName]
    配置选项(例如,通过编辑
    $spark\u HOME/conf/spark defaults.conf
    或设置相应的
    SparkConf

同时,您应该确保在每个工作节点上安装/访问<代码>请求(如果不使用本地/伪分布式模式)。

启动PyShell shell和<代码>导入请求< /代码>。它会起作用。这是有意义的,虽然我没有T.Y.VICTROL.LI您会考虑接受答案吗?谢谢!