我收到以下错误:
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: java.io.IOException: No FileSystem for scheme: s3n ...
当我尝试从S3检索数据时。我的spark-defaults.conf
有以下一行:
spark.jars /Users/lrezende/Desktop/hadoop-aws-2.9.0.jar
这个文件在我的桌面上。
我的代码是:
from pyspark.sql import SparkSession
if spark:
spark.stop()
spark = SparkSession\
.builder\
.master("<master-address>")\
.appName("Test")\
.getOrCreate()
spark.sparkContext.setLogLevel('ERROR')
lines = spark.sparkContext.textFile("s3n://bucket/something/2017/*")
lines.collect()
当我运行de lines.collect()
时,我收到错误。
有人可以帮我修理吗?
答案 0 :(得分:1)
如果您使用的是新的(ish)版本的Spark - 而且是传统的,Hadoop - 您需要使用s3a
而不是s3n
URI方案。
答案 1 :(得分:0)
毕竟我的问题&#34;很容易解决。我已经在我的spark-defaults.conf
中添加了以下行:
spark.jars.packages com.amazonaws:aws-java-sdk:1.10.34,org.apache.hadoop:hadoop-aws:2.9.0
每次我重新导入Jupyter笔记本中的所有libs,但我没有尝试过重启Jupyter服务,这仍然有点令人困惑,因为每次我创建会话后修复它{{ 1}}被读取并尝试下载所需的包。为什么以前没有呢?
无论如何,感谢大家的时间。