8字符的文件加载到显示垃圾字符/框的apache配置单元表中� �

oug3syen  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(218)

当我尝试将文件加载到配置单元时,有些字符没有得到正确的解释,在配置单元中显示为方框。

使用“ 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

我怎样才能摆脱这些特征,仍然正确地加载数据呢 `Ù` ?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题