gpt4 book ai didi

hadoop - 如何在HDFS中更改字符集

转载 作者:行者123 更新时间:2023-12-02 20:08:31 25 4
gpt4 key购买 nike

我有一个小型的Hadoop集群版本1.1.2,同时在用德语编写的文本文件上运行一些基本单词计数时,我注意到HDFS不能很好地处理ü,ö,ä等特殊字符。

有没有办法更改HDFS中使用的CharacterSet?

这是我在这里得到“ö”的一些例子:

angeh�ren,
angeh�rige,
Angeh�rigen,
Angeh�riger

最佳答案

由于您提到了字数统计示例,所以我猜您正在使用文本。文本假定基础内容的字符集为UTF8。如果您的字符集不是UTF8,则需要从Text中获取byte []并自行进行转换。

我不确定您是否使用以下代码(来自hadoop wiki):

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
}

在这种情况下,您只需要将 String line = value.toString();更改为 String line = new String(value.getBytes(), 0, value.getLength(), "change_to_your_charset");
顺便说一下,HDFS与字符集无关。它仅存储二进制数据。 “字符集”是一个如何解释文本文件中的二进制数据的概念。

关于hadoop - 如何在HDFS中更改字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com