这是输入的 .csv 文件
"1","","动画"
"2","勇敢者游戏",""
“”,“脾气暴躁的老人”,“喜剧”
hive 代码
如果电影不存在则创建表(movie_id int,movie_name string,genre string)
行格式 SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
使用 SERDEPROPERTIES (
"分隔符"= ",",
"quoteChar"= "\"",
"serialization.null.format"= '0'
);
输出
1 动画
2 勇敢者游戏
Grumpier Old Men Comedy
最佳答案
csv 中的空字符串被解释为空字符串,而不是 NULL。要在带分隔符的文本文件中表示 NULL,您应该使用“\N”。 Hive 还为您提供了一个表属性“serialization.null.format”,可用于在 Hive SQL 中将您选择的字符视为 null。在您的情况下,它应该是空字符串“”。要将 NULL 转换为零,请使用 NVL(col, 0)
或 COALESCE(col, 0)
函数,具体取决于您的配置单元版本(COALESCE 应该适用于所有版本)。
关于csv - 我试图在配置单元中将 csv 文件中的空值设置为零。但是这段代码似乎不起作用。我应该做哪些改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215937/