La lecture DataFrame de partitionnée parquet fichier
Comment lire partitionné en parquet, avec la condition que dataframe,
cela fonctionne bien,
val dataframe = sqlContext.read.parquet("file:///home/msoproj/dev_data/dev_output/aln/partitions/data=jDD/year=2015/month=10/day=25/*")
Partition est là pour day=1 to day=30
est-il possible de lire quelque chose comme(day = 5 to 6)
ou day=5,day=6
,
val dataframe = sqlContext.read.parquet("file:///home/msoproj/dev_data/dev_output/aln/partitions/data=jDD/year=2015/month=10/day=??/*")
Si j'ai mis *
il me donne toutes les 30 jours de données et qu'il était trop grande.
OriginalL'auteur WoodChopper | 2015-11-11
Vous devez vous connecter pour publier un commentaire.
sqlContext.read.parquet
peut prendre plusieurs chemins d'accès à l'entrée. Si vous voulez justeday=5
etday=6
, vous pouvez simplement ajouter deux chemins comme:Si vous avez des dossiers en vertu de
day=X
, comme, disons,country=XX
,country
sera automatiquement ajouté comme une colonne dans ledataframe
.Alors pourquoi ne pas tout simplement faire
val dataframe = sqlContext.read.parquet("file:///your/path/data=jDD/year=2015/month=10/")?
jour " est ajouté comme une colonne dans le dataframe, que vous pouvez ensuite filtrer.En fait, il est très important de sources de données en cours d'exécution. Données de 2007 à 2015. Sur une moyenne de 5 milliards de lignes de grumes sont traitées et stockées. Je voudrais être demandé en particulier de rapport de données sur demande
Droite, donc la première chose à faire est un
filter
opération. Depuis Étincelle ne paresseux évaluation, vous ne devriez avoir aucun problème avec la taille de l'ensemble de données. Le filtre sera appliqué avant les actions et uniquement les données qui vous intéressent seront gardés en mémoire.Eh bien, il semble que la réponse est celle-ci!
OriginalL'auteur Glennie Helles Sindholt
Si vous voulez lire pour plusieurs jours, par exemple
day = 5
etday = 6
et veux parler de la gamme dans le chemin lui-même, les caractères génériques peuvent être utilisés:Jokers peut également être utilisé pour spécifier une plage de jours:
Cela correspond à tous les jours de 5 à 10.
OriginalL'auteur Neelesh Sambhajiche
vous devez fournir
mergeSchema = true
option. comme mentionné ci-dessous (ce qui est de 1.6.0):Cela permettra de lire tous les parquets des fichiers dans dataframe et crée également des colonnes de l'année, le mois et le jour dans le dataframe de données.
Ref: https://spark.apache.org/docs/1.6.0/sql-programming-guide.html#schema-merging
OriginalL'auteur Kiran N