Как преобразовать коды символов из UTF-8 в Shift JIS в scala spark? - PullRequest
0 голосов
/ 03 июля 2019

Я хочу преобразовать коды символов из UTF-8 в Shift-JIS в файле data.txt.

Что мне делать?

Это мой код, но он неправильный.

Он страдает от проблем, как показано ниже.

  1. Не работать в искровых условиях. ошибка: java.lang.IndexOutOfBoundsException при обработке списка списков
  2. В результате получается файл с кодировкой символов ANSI, а не Shift-jis.
    import scala.io.Source 
    import scala.io._ 
    import scala.collection.mutable.ArrayBuffer 
    import scala.collection.mutable 
    import java.io.BufferedReader 
    import java.io.BufferedWriter 
    import java.io.File 
    import java.io.FileInputStream 
    import java.io.FileOutputStream 
    import java.io.InputStreamReader 
    import java.io.OutputStreamWriter 
    import org.apache.spark.SparkContext._ 
    import org.apache.spark.rdd.RDD 
    import org.apache.spark.sql.SparkSession 

    object uconv { 
      def main(args: Array[String]): Unit = { 
        val sparkSession = SparkSession.builder.master("local").appName("Spark_Accumulator").getOrCreate() 
        val fis: FileInputStream = new FileInputStream(new File("data.txt")) 
        val in: BufferedReader = new BufferedReader(new InputStreamReader(fis, "UTF8")) 
        val fos: FileOutputStream = new FileOutputStream(new File("output.txt")) 
        val out: BufferedWriter = new BufferedWriter(new OutputStreamWriter(fos, "SJIS")) 
        val len: Int = 80 
        val buf: Array[Char] = Array.ofDim[Char](len) 
        var numRead: Int = 0 
        while ((numRead = in.read(buf, 0, len)) != -1) 
        out.write(buf, 0, numRead) 
        out.close() 
        in.close() 
      } 
    }

Пожалуйста, исправьте код, чтобы помочь мне правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...