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您会考虑接受答案吗?谢谢!