我有几个txt文件,我想在其上创建一个外部表。 不幸的是,文件的内容还包含字符串" \ n"时。似乎Hive将此解释为换行符,即使它不是原始文件中的换行符,也只是文本的一部分。 我是否可以在Hive中捕获此问题而无需更改原始txt文件?
答案 0 :(得分:0)
您可以在每行的末尾添加任何其他分隔符(除了\ n和您的字段分隔符之外)。并且可以在表属性中注册该分隔符。 例如:我们说我有这样的记录
1,2,3,aniit \ N,4 \ n
在这条记录中,aniit \ n是一个字符串,\ n是字符串。所以hive使它成为两个记录。要避免这种情况,你可以在end添加任何其他分隔符。喜欢
1,2,3,aniit \ N,4 \ n ||
在这里' ||'是行分隔符,我的创建表将如下所示:
create external table if not exists table1
(
col1 int,
col2 int,
col3 int,
col4 string,
col5 string
)
row format delimited fields terminated by ','
lines terminated by '||'
stored as textfile
location '/tmp/table1';