читать csv из S3 как спарк-фрейм с использованием pyspark (spark 2.4) - PullRequest
0 голосов
/ 07 октября 2019

Я хотел бы прочитать csv-файл из s3 (s3: //test-bucket/testkey.csv) как фрейм данных искры с использованием pyspark. Мой кластер работает на спарке 2.4.

Мне не нужно принимать какие-либо infer_schema, учетные данные в том числе. И csv-файл нельзя сканировать как склеивающую таблицу.

Не могли бы вы вставить свой код pyspark, основанный на сеансе spark, и преобразует здесь CSV в кадр данных spark?

Большое спасибо заранее и наилучшими пожеланиями

1 Ответ

0 голосов
/ 07 октября 2019

Вы можете установить определенные свойства, как показано ниже

spark = SparkSession.builder \
            .appName("app_name") \
            .getOrCreate()

spark._jsc.hadoopConfiguration().set("fs.s3a.access.key", "mykey")
spark._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "mysecret")
spark._jsc.hadoopConfiguration().set("fs.s3a.impl","org.apache.hadoop.fs.s3a.S3AFileSystem")
spark._jsc.hadoopConfiguration().set("com.amazonaws.services.s3.enableV4", "true")
spark._jsc.hadoopConfiguration().set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.BasicAWSCredentialsProvider")
spark._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "eu-west-3.amazonaws.com")

После этого вы можете читать файлы

csvDf = spark.read.csv("s3a://path/to/files/*.csv")
jsonDf = spark.read.json("s3a://path/to/files/*.json")
...