我在HDFS中有一个制表符分隔的文本文件。尝试使用Tab拆分时,文件中的第一列未存储。相同的代码在正常的 eclipse 中也有效。但是在hadoop中运行时,第一列值将被忽略。

文件中的示例行:

002\tCK 00 - 01/02/2012\t100000\t0.02\t330\t3863\t3863 FOOD

代码片段:
String subvalues[] = value.split("\t");
v1= subvalues[5];
v2=subvalues[0];
v3=subvalues[1];

请帮助。

最佳答案

value.split("\t")将由制表符分隔。但是,此行中也可能有空格。您可以尝试使用正则表达式分割行:

String subvalues[] = value.split("\\s+");

对于您的更新-可能您需要转义\t:value.split("\\t")value.split("\\t|\\s+")

注意:通常\t用作数据的语义定界符,因此您可能需要在通过\t拆分后解析列。

如果这样做没有帮助,则可以记录字符串的ascii值以查看其中的字符。

09-26 06:39