包含换行符的数据上的配置单元外部表

bfrts1fy  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(334)

我有几个txt文件,我想在上面创建一个外部表。不幸的是,文件的内容还不时包含字符串“\n”。似乎hive将其解释为一个换行符,尽管它不是原始文件中的换行符,只是文本的一部分。我可以在hive中捕获这个问题而不必更改原始的txt文件吗?

kq4fsx7k

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';

相关问题