web-dev-qa-db-fra.com

Comment lire un fichier compressé gz avec pyspark

J'ai des données de ligne au format compressé .gz. Je dois le lire dans pyspark Voici l'extrait de code

rdd = sc.textFile("data/label.gz").map(func)

Mais je ne pouvais pas lire le fichier ci-dessus avec succès. Comment puis-je lire le fichier compressé gz. J'ai trouvé une question similaire ici mais ma version actuelle de spark est différente de celle de cette question. Je pense qu’il devrait y avoir une fonction intégrée comme dans hadoop.

6
Shafiq

Spark document spécifiez clairement que vous pouvez lire le fichier gz automatiquement:

Toutes les méthodes de saisie de fichiers de Spark, y compris textFile, prennent en charge fonctionnant sur des répertoires, des fichiers compressés et des caractères génériques. Pour Par exemple, vous pouvez utiliser textFile ("/ my/directory"), textFile ("/ mon/répertoire/.txt") et textFile ("/ mon/répertoire/ .gz").

Je suggère d'exécuter la commande suivante et de voir le résultat:

rdd = sc.textFile("data/label.gz")

print rdd.take(10)

En supposant que spark trouve le fichier data/label.gz, il imprimera les 10 lignes du fichier.

Notez que l'emplacement par défaut d'un fichier tel que data/label.gz sera dans le dossier hdfs de l'utilisateur spark. C'est ici?

9
Yaron

Vous n'avez pas écrit le message d'erreur que vous avez reçu, mais il ne va probablement pas bien car les fichiers gzipped ne sont pas séparables . Vous devez utiliser un codec de compression pouvant être scindé, comme bzip2.

0
Tim