我在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值以查看其中的字符。