在配置单元中,字段TERMINATED BY“\u0004”和字段TERMENATED BY“\u001C”之间的区别是什么

s3fp2yjn  于 2022-09-27  发布在  Hive
关注(0)|答案(1)|浏览(317)

在我的项目中,我看到了两个配置单元表,在create-table语句中,我发现一个表具有ROW FORMAT DELIMITED FIELDS TERMINATED BY“\u0004”,另一个表有ROW FORM DELIMITE FIELDS PERMINATE BY“\ u001C”。我想知道这些“\u0004”和“\u001C”是什么意思,什么时候使用?请回答。

ggazkfy8

ggazkfy81#

在许多文本格式中,\u引入了Unicode转义序列。这是一种存储或发送字符的方法,无法以您使用的格式轻松显示或表示。\u后的四个字符是十六进制的Unicode“码位”。Unicode码位是表示特定Unicode字符的数字。
所有字符都有一个代码点,即使是可打印的字符。例如,aU+0061
U+0004U+001C都是不可打印的字符,这意味着没有标准字符可用于在屏幕上显示它们。这就是为什么这里使用转义序列。
如果使用简单的可打印字符(如,)作为字段分隔符,将使存储的数据更容易被人读取。字段值之间将存储,。例如,您可能会看到值onetwothree存储为:

one,two,three

但是,如果您希望字段值实际包含,,那么字段定界符的选择就很糟糕(因为这样您就需要一种特殊的方法来区分值为one,two的单个字段与值为e13d1e和two两个不同字段之间的差异)。分隔符的选择既取决于您是否希望能够轻松读取它,也取决于您希望字段包含什么字符。

相关问题