Spark:导入UTF-8编码的文本文件

jOa*_*sis 6 scala apache-spark

我正在尝试处理一个包含很多特殊字符的文件,例如德语元音变音(\xc3\xa4,\xc3\xbc,o)等,如下所示:

\n\n

sc.hadoopConfiguration.set("textinputformat.record.delimiter", "\\r\\n\\r\\n") sc.textFile("/file/path/samele_file.txt")

\n\n

但在阅读内容时,这些特殊字符无法识别。

\n\n

我认为默认编码不是 UTF-8 或类似格式。我想知道是否有一种方法可以在此 textFile 方法上设置编码,例如:

\n\n
sc.textFile("/file/path/samele_file.txt",mode="utf-8")`\n
Run Code Online (Sandbox Code Playgroud)\n

小智 2

不可以,如果以UTF-8模式读取非UTF-8格式的文件,非ascii字符将无法正确解码。请将文件转换为UTF-8编码后再读取。您可以参考 读取不同格式的文件

context.hadoopFile[LongWritable, Text, TextInputFormat](location).map(
    pair => new String(pair._2.getBytes, 0, pair._2.getLength, charset)
)
Run Code Online (Sandbox Code Playgroud)