lire des fichiers de manière récursive dans les sous-répertoires avec spark à partir de s3 ou le système de fichiers local
Je suis en train de lire les fichiers d'un répertoire qui contient de nombreux sous-répertoires. Les données sont en S3 et je suis en train de le faire:
val rdd =sc.newAPIHadoopFile(data_loc,
classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
classOf[org.apache.hadoop.io.NullWritable])
cela ne semble pas fonctionner.
Apprécions l'aide
Avez-vous essayé tout à l'aide de
oui , j'ai essayé ça ne fonctionne pas
S'il vous plaît poster un exemple de la façon dont les répertoires sont imbriqués. Il y a probablement une solution impliquant simple des caractères génériques, tels que:
oui ça marche je vous remercie.
textFile("s3n://<root_dir>/*")
?oui , j'ai essayé ça ne fonctionne pas
S'il vous plaît poster un exemple de la façon dont les répertoires sont imbriqués. Il y a probablement une solution impliquant simple des caractères génériques, tels que:
s3n://bucket/*/*/*
.oui ça marche je vous remercie.
s3n://bucket/root_dir/*/*/*
pour l'année, le mois, la date . Mais fait quelque chose comme ce travail: s3n://bucket/root_dir/*/data/*/*/*
essentiellement un répertoire dans chaque sous-répertoire ?OriginalL'auteur venuktan | 2015-01-13
Vous devez vous connecter pour publier un commentaire.
oui ça fonctionne, il a fallu un certain temps pour obtenir les blocs individuels/divise bien que , fondamentalement, un répertoire spécifique dans chaque sous-répertoire :
s3n://bucket/root_dir/*/data/*/*/*
s3n://seau/root_dir/*/data/*/*/* dans l'url ci-dessus , je suis en train de lire la dir de données. Le parent dir de données est variable et j'ai donc utilisé "*". Espérons que cela aide.
Sonne comme un autre cas d'utilisation que le mien - qui est "donné un dir /certains/hdfs/dir": rechercher tous les fichiers en-dessous. La structure de /certains/hdfs/dir/*/*/*/* ." ne fonctionne pas: hdfs dfs renvoie une erreur sur une des entrées de l'annuaire qu'il trouve.
Cela fonctionne, mais c'est chien lent. Apparemment, le premier
*
déclenche une s3 de la liste, puis, pour chacun des résultats, la prochaine*
déclenche une liste. La réelle extraction est retardée, le temps de l'ensemble de la liste se produit. Est-il un seul modèle récursif?OriginalL'auteur venuktan
ok, essayez ceci :
-lsr
listes de manière récursive, ensuite d'analyser ceux qui ne commencent pas par "d"OriginalL'auteur venuktan