我正在尝试创建一个配置单元表。我不确定何时使用varchar,何时使用string。如果我们使用varchar,那么我们是否必须像在rdbms中定义varchar(10)那样定义长度?请帮助
iugsix8n1#
在hive0.12.0中引入varchar是为了实现更符合sql的行为,例如sql字符串比较语义、最大长度等(参见hive-4844)。varchar类型是使用长度说明符(介于1和65355之间)创建的,该说明符定义字符串中允许的最大字符数。如果要转换/分配给varchar值的字符串值超过长度说明符,则该字符串将自动截断。还有一个限制:非泛型udf不能直接使用varchar类型作为输入参数或返回值。看到了吗here:wiki字符串没有这样的限制。字符串的最大长度为2gb
1条答案
按热度按时间iugsix8n1#
在hive0.12.0中引入varchar是为了实现更符合sql的行为,例如sql字符串比较语义、最大长度等(参见hive-4844)。
varchar类型是使用长度说明符(介于1和65355之间)创建的,该说明符定义字符串中允许的最大字符数。如果要转换/分配给varchar值的字符串值超过长度说明符,则该字符串将自动截断。
还有一个限制:非泛型udf不能直接使用varchar类型作为输入参数或返回值。看到了吗here:wiki
字符串没有这样的限制。字符串的最大长度为2gb