2017-10-13 5 views
0

J'essaie de copier des fichiers sur un volume monté nfsv3 pendant un étincelle. Certains fichiers contiennent des trémas. Par exemple:Problèmes de tréma avec l'écriture d'un travail Spark sur un volume monté sur NFSv3

entrée Malformed ou entrée contient des caractères impossible à cartographier: /import/nfsmountpoint/Währungszählmaske.pdf

L'erreur se produit dans la ligne suivante de code scala:

//targetPath is String and looks ok  
val target = Paths.get(targetPath) 

L'encodage de fichier est affiché comme ANSI X3.4-1968 bien que les paramètres régionaux Linux sur les machines spark soient définis sur en_US.UTF-8.

Je l'ai déjà essayé de modifier les paramètres régionaux pour le travail d'étincelle lui-même en utilisant les arguments suivants:

--conf 'spark.executor.extraJavaOptions=-Dsun.jnu.encoding=UTF8 -Dfile.encoding=UTF8' 

--conf 'spark.driver.extraJavaOptions=-Dsun.jnu.encoding=UTF8 -Dfile.encoding=UTF8' 

Cela résout l'erreur, mais le nom de fichier sur le volume cible ressemble à ceci: /import/nfsmountpoint/? W hrungsz hlmaske.pdf

Le point de montage de volume est:

hnnetapp666.mydomain:/vol/nfsmountpoint on /import/nfsmountpoint type nfs (rw,nosuid,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,noacl,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=4.14.1.36,mountvers=3,mountport=4046,mountproto=udp,local_lock=none,addr=4.14.1.36) 

est-il un moyen possible de résoudre ce problème?

Répondre

0

résolu ce problème en définissant les paramètres d'encodage comme mentionné ci-dessus et la conversion manuellement et en UTF-8:

Solution for encoding conversion

Tout en utilisant NFSv4 avec le soutien UTF-8 aurait été une solution plus facile.