我有几个txt文件,我想在上面创建一个外部表。不幸的是,文件的内容还不时包含字符串“\n”。似乎hive将其解释为一个换行符,尽管它不是原始文件中的换行符,只是文本的一部分。我可以在hive中捕获这个问题而不必更改原始的txt文件吗?
kq4fsx7k1#
您可以将任何其他分隔符放在每行的末尾(除了\n和字段分隔符)。然后可以在表属性中注册该分隔符。假设我有这样的记录1,2,3,aniit\n,4\n在这个记录中,aniit\n是一个字符串,而\n是字符串。所以hive将它设为两个记录。为了避免这种情况,可以在end.like处添加任何其他分隔符1,2,3,aniit\n,4\n||这里的“| |”是行分隔符,我的create表如下所示:
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';
1条答案
按热度按时间kq4fsx7k1#
您可以将任何其他分隔符放在每行的末尾(除了\n和字段分隔符)。然后可以在表属性中注册该分隔符。假设我有这样的记录
1,2,3,aniit\n,4\n
在这个记录中,aniit\n是一个字符串,而\n是字符串。所以hive将它设为两个记录。为了避免这种情况,可以在end.like处添加任何其他分隔符
1,2,3,aniit\n,4\n||
这里的“| |”是行分隔符,我的create表如下所示: