La lecture de SF et de fichiers locaux en Java
Je veux lire des chemins d'accès aux fichiers, indépendamment de savoir si ils sont HDFS ou local. Actuellement, je passe les chemins locaux avec le préfixe file://et HDFS chemins avec le préfixe hdfs://et écrire du code comme le suivant
Configuration configuration = new Configuration();
FileSystem fileSystem = null;
if (filePath.startsWith("hdfs://")) {
fileSystem = FileSystem.get(configuration);
} else if (filePath.startsWith("file://")) {
fileSystem = FileSystem.getLocal(configuration).getRawFileSystem();
}
À partir d'ici, j'utilise l'API du système de fichiers pour lire le fichier.
Pouvez-vous s'il vous plaît laissez-moi savoir si il y a d'autres mieux que cela?
Pourquoi êtes-vous satisfait de votre méthode actuelle?
Je ne suis pas malheureuse en soi. Je veux que ma méthode prend un objet de Chemin et je me demandais à partir de la Voie si il y a une méthode qui peut me dire si ce chemin appartient à un local ou un système de fichiers HDFS. J'ai essayé de faire un toString de la Voie et de faire le comparatif ci-dessus, mais ça n'a pas fonctionné. Je suis devoir à un tour().toString() sur le Chemin d'accès et le faire vérifier.
Je ne suis pas sûr si j'ai besoin de créer un nouveau post pour cela. Je suis désolé si je devrais avoir. Sinon, ma question est comment puis-je savoir si un chemin d'accès au fichier est HDFS ou local, même si j'ai un Chemin et non une Chaîne. Serait-il à faire un tour().toString() et faire le check comme je l'ai mentionné dans mon premier post. Ou pour faire un tour() et vérifier si le régime. Merci....
Je ne suis pas malheureuse en soi. Je veux que ma méthode prend un objet de Chemin et je me demandais à partir de la Voie si il y a une méthode qui peut me dire si ce chemin appartient à un local ou un système de fichiers HDFS. J'ai essayé de faire un toString de la Voie et de faire le comparatif ci-dessus, mais ça n'a pas fonctionné. Je suis devoir à un tour().toString() sur le Chemin d'accès et le faire vérifier.
Je ne suis pas sûr si j'ai besoin de créer un nouveau post pour cela. Je suis désolé si je devrais avoir. Sinon, ma question est comment puis-je savoir si un chemin d'accès au fichier est HDFS ou local, même si j'ai un Chemin et non une Chaîne. Serait-il à faire un tour().toString() et faire le check comme je l'ai mentionné dans mon premier post. Ou pour faire un tour() et vérifier si le régime. Merci....
OriginalL'auteur Venk K | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
Est-il logique,
Vous n'avez pas à mettre cette case si vous allez de cette façon. Obtenir le système de fichiers directement à partir du Chemin et puis faites comme bon vous semble.
Vous êtes les bienvenus Venk. Regarde mieux après une petite modification.
Salut Tarek, la source de fichier local sur le bord de nœud ? avez-vous une exemple de mappeur de classe trop ?
OriginalL'auteur Tariq
Vous pouvez obtenir le
FileSystem
de la façon suivante:Vous n'avez pas besoin de juger si le chemin commence par
hdfs://
oufile://
. Cette API va faire le travail.OriginalL'auteur zsxwing
Veuillez vérifier l'extrait de code ci-dessous la liste des fichiers à partir de HDFS chemin; à savoir la chaîne de chemin qui commence avec
hdfs://
. Si vous pouvez fournir configuration Hadoop et chemin d'accès local, il sera également la liste des fichiers du système de fichiers local, à savoir la chaîne de chemin qui commence avecfile://
.Si vous voulez vraiment travailler avec java.io.Fichier API ensuite, la méthode suivante peut vous aider de la liste uniquement les fichiers du système de fichiers local, à savoir la chaîne de chemin qui commence avec
file://
.OriginalL'auteur CavaJ