Нет файловой системы для схемы: s3 использует pyspark при чтении файла s3 для паркета - PullRequest
0 голосов
/ 28 января 2020

У меня есть корзина с несколькими небольшими файлами Parquet, которые я хотел бы объединить в более крупный.

Чтобы выполнить эту задачу, я хотел бы создать искровое задание для использования и записи нового файла. .

from pyspark import SparkContext
from pyspark.sql import SparkSession, SQLContext

spark = SparkSession.builder \
                    .master("local") \
                    .appName("Consolidated tables") \
                    .getOrCreate()

spark._jsc.hadoopConfiguration().set("fs.s3a.access.key", "access")
spark._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "secret")

df = spark.read.parquet("s3://lake/bronze/appx/contextb/*")

Этот код вызывает у меня исключение: No FileSystem for scheme: s3. Если я переключаюсь на s3a://..., я получаю сообщение об ошибке: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found.

Я пытаюсь запустить этот код как python myfile.py.

Есть идеи, что случилось?

Ответы [ 2 ]

2 голосов
/ 28 января 2020

скачайте этот файл oop - aws -2.7.5.jar (или последнюю версию) и настройте этот jar-файл, доступный для spark

spark = SparkSession \
        .builder \
        .config("spark.jars", "/path/to/hadoop-aws-2.7.5.jar")\
        .getOrCreate()
1 голос
/ 28 января 2020
from boto3.session import Session
from pyspark import SparkContext
from pyspark.sql import SparkSession, SQLContext

spark = SparkSession.builder \
                    .master("local") \
                    .appName("Consolidated tables") \
                    .getOrCreate()

ACCESS_KEY='your_access_key'
SECRET_KEY='your_secret_key'

session = Session(aws_access_key_id=ACCESS_KEY,
                  aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')

df = spark.read.parquet("s3://lake/bronze/appx/contextb/*")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...