Je suis en train de sauver le RDD avec charset ISO-8859-1 codé en utilisant saveAsNewAPIHadoopFile au seau AWS S3 Mais son changement de codage de caractères UTF-8 lors de son enregistrée au seau S3 .saveAsNewAPIHadoopFile changer le codage de caractères UTF-8
Extrait de code
val cell = “ MYCOST £25” //This is in UTF-8 character encoding .
val charset: Charset = Charset.forName(“ISO-8859-1”)
val cellData = cell.padTo(50, “ “).mkString
val iso-data = new String(cellData.getBytes(charset), charset) // here it converts the string from UTF-8 to ISO-8859-1
Mais lorsque j'enregistre le fichier en utilisant saveAsNewAPIHadoopFile il passe au format UTF-8. Je pense que saveAsNewAPIHadoopFile TextOutputFormat convertit automatiquement le codage de fichier en UTF-8. Est-il possible que je peux enregistrer le contenu au seau S3 avec le même encodage (ISO-8859-1)
ds.rdd.map { record =>
val cellData = record.padTo(50, “ “).mkString
new String(cellData.getBytes(“ISO-8859-1”), “ISO-8859-1”)
}.reduce { _ + _ }
}.mapPartitions { iter =>
val text = new Text()
iter.map { item =>
text.set(item)
(NullWritable.get(), text)
}
}.saveAsNewAPIHadoopFile(“”s3://mybucket/“, classOf[NullWritable], classOf[BytesWritable], classOf[TextOutputFormat[NullWritable, BytesWritable]])
apprécions votre aide