Одним из решений является использование Имел oop FS API . Из Pyspark вы можете получить к нему доступ через JVM.
Вот пример, который перечисляет файлы из папки S3 Bucket и печатает пути.
Path = sc._gateway.jvm.org.apache.hadoop.fs.Path
conf = sc._jsc.hadoopConfiguration()
s3_folder = Path("s3://bucket_name/folder")
gs = s3_folder.getFileSystem(conf).globStatus(s3_folder)
for f in gs:
print(f.getPath().toString())
Не уверен, почему вы хотите читать файлы таким способом, поскольку вы можете сделать это с помощью Spark, но вот способ с использованием метода Had oop FS open
:
fs = s3_folder.getFileSystem(conf)
fs_data_input_stream = fs.open(s3_folder)
line = fs_data_input_stream.readLine()
while line:
print(line)
line = fs_data_input_stream.readLine()
Однако, если вы используете EMR Cluster, я рекомендую скопировать файлы из S3 в локальную систему и использовать их.