Comment lire parquet de données à partir de S3 à étincelle dataframe Python?

Je suis nouveau à l'Étincelle et je ne suis pas en mesure de trouver cette... j'ai beaucoup de parquet fichiers téléchargés dans s3 à l'emplacement :

s3://a-dps/d-l/sco/alpha/20160930/parquet/

La taille totale de ce dossier est 20+ Gb,. Comment segmenter et de lire cela dans un dataframe
Comment faire pour charger tous ces fichiers dans un dataframe?

Mémoire allouée à l'étincelle de cluster est de 6 go.

    from pyspark import SparkContext
    from pyspark.sql import SQLContext
    from pyspark import SparkConf
    from pyspark.sql import SparkSession
    import pandas
    # SparkConf().set("spark.jars.packages","org.apache.hadoop:hadoop-aws:3.0.0-alpha3")
    sc = SparkContext.getOrCreate()

    sc._jsc.hadoopConfiguration().set("fs.s3.awsAccessKeyId", 'A')
    sc._jsc.hadoopConfiguration().set("fs.s3.awsSecretAccessKey", 's')

    sqlContext = SQLContext(sc)
    df2 = sqlContext.read.parquet("s3://sm/data/scor/alpha/2016/parquet/*")

Erreur :

 
Py4JJavaError: Une erreur s'est produite lors d'un appel o33.parquet. 
: java.io.IOException: Pas de système de fichiers pour le système: s3 
au org.apache.hadoop.fs.Système de fichiers.getFileSystemClass(système de fichiers.java:2660) 
au org.apache.hadoop.fs.Système de fichiers.createFileSystem(système de fichiers.java:2667) 
au org.apache.hadoop.fs.Système de fichiers.accéder à$200(système de fichiers.java:94) 
au org.apache.hadoop.fs.Système De Fichiers$Cache.getInternal(système de fichiers.java:2703) 
au org.apache.hadoop.fs.Système De Fichiers$Cache.get(système de fichiers.java:2685) 
au org.apache.hadoop.fs.Système de fichiers.get(système de fichiers.java:373) 
au org.apache.hadoop.fs.Chemin d'accès.getFileSystem(Chemin d'accès.java:295) 
au org.apache.spark.sql.l'exécution.les sources de données.Source de données$$anonfun$14.appliquer(source de données.scala:372) 
au org.apache.spark.sql.l'exécution.les sources de données.Source de données$$anonfun$14.appliquer(source de données.scala:370) 
à la scala.collection.TraversableLike$$anonfun$flatMap$1.appliquer(TraversableLike.scala:241) 
à la scala.collection.TraversableLike$$anonfun$flatMap$1.appliquer(TraversableLike.scala:241) 
à la scala.collection.immuable.Liste.foreach(la Liste.scala:381) 
à la scala.collection.TraversableLike de classe$.flatMap(TraversableLike.scala:241) 
à la scala.collection.immuable.Liste.flatMap(la Liste.scala:344) 

également nécessaire d'ajouter les paquets spark dossier : org.apache.hadoop:hadoop-aws:3.0.0-alpha3, org.apache.httpcomponents:httpclient:4.3.6, org.apache.httpcomponents:httpcore:4.3.3, com.amazonaws:aws-java-sdk-core:1.10.27, com.amazonaws:aws-java-sdk-s3:1.10.27, com.amazonaws:aws-java-sdk-sts:1.10.27
Peut-être que ce résumé peut vous aider: gist.github.com/asmaier/5768c7cda3620901440a62248614bbd0

OriginalL'auteur Viv | 2017-06-19