当我尝试将文件加载到配置单元时,有些字符没有得到正确的解释,在配置单元中显示为方框。
使用“ file
“命令,我得到如下文件类型:
ksh> file -bi data.TXT
text/plain; charset=us-ascii
下面是一个数据示例(在putty terminal linux机器的vim编辑器中打开,该机器具有以下设置:window>translation>remote character set as utf-8):
338498281INT057575238000ZENECA 176334 9
338498282INT015250238000<8d>4CYANO3(TRIFLUOROMETHYL)PHENYLÙ3<8d>4FLUOROPHENYL)SULFONYLHYDROXYMETHPRO 9
下面是相同的快照(注意第二行<8d>字符的蓝色,我想删除它,并保留 Ù
:u(含砾石)
我试过用 sed, tr
命令,但数据仍然以框的形式出现。
cat data.TXT | tr -d '\215' > data_tr_215.TXT # Ù still coming as boxes in hive
我还尝试使用java的inputstreamreader和outputstreamwriter对其进行转换,但即使这样也会以方框形式给出结果: 000�4CYANO3(TRIFLUOROMETHYL)PHENYL�3�4FLUOROPHENYL)
```
scala> val fsDataInputStream = hdfs.open(new Path("data.TXT"))
fsDataInputStream: org.apache.hadoop.fs.FSDataInputStream = org.apache.hadoop.hdfs.client.HdfsDataInputStream@7789f96c: org.apache.hadoop.crypto.CryptoInputStream@b274834
scala> val isr = new InputStreamReader(fsDataInputStream)
isr: java.io.InputStreamReader = java.io.InputStreamReader@4e8b0758
scala> isr.getEncoding
res1: String = UTF8
我怎样才能摆脱这些特征,仍然正确地加载数据呢 `Ù` ?
暂无答案!
目前还没有任何答案,快来回答吧!