Apache spark Pyspark无法从AWS S3检索数据
我得到以下错误:Apache spark Pyspark无法从AWS S3检索数据,apache-spark,amazon-s3,pyspark,Apache Spark,Amazon S3,Pyspark,我得到以下错误: 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
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()
从pyspark.sql导入SparkSession
如果火花:
spark.stop()
火花=火花会话\
建筑商先生\
.master(“”)\
.appName(“测试”)\
.getOrCreate()
spark.sparkContext.setLogLevel('错误')
lines=spark.sparkContext.textFile(“s3n://bucket/something/2017/*”)
collect()行
当我运行delines.collect()时,我得到了错误
有人能帮我解决这个问题吗?如果你使用的是Spark的新(ish)版本——也可以说是Hadoop——你需要使用s3a
而不是s3n
URI模式。毕竟我的“问题”很容易解决。我已经在我的spark defaults.conf
中添加了以下行:
spark.jars.packages com.amazonaws:aws-java-sdk:1.10.34,org.apache.hadoop:hadoop-aws:2.9.0
每次我重新导入Jupyter笔记本中的所有LIB,但我没有尝试重新启动Jupyter服务,这仍然有点混乱,因为每次我创建会话时都会修复它,然后读取conf
,它会尝试下载所需的包。为什么它以前没有呢
无论如何,感谢大家抽出时间。与答案相关: