配置单元 sql,serde 如何不引用我的字段?
hive sql, serde how to not quote my fields?
由于默认情况下 serde 引用字段,我怎么能不使用 serde 引用我的字段?
我试过了:
row format serde "org.apache.hadoop.hive.serde2.OpenCSVSerde"
with serdeproperties(
"separatorChar" = ",",
"quoteChar" = "")
但是我得到了
FAILED: SemanticException java.lang.StringIndexOutOfBoundsException: String index out of range: 0
您可以通过将 \u0000
指定为引号字符来实现此目的。由于 quoteChar
需要一个字符串,因此您应该使用 NULL
.
的 unicode 版本
ROW FORMAT SERDE
"org.apache.hadoop.hive.serde2.OpenCSVSerde"
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = "\u0000")
这个 unicode NULL \u0000
被 CSV writer
class 用作 NO_QUOTE_CHARACTER
的值:http://www.java2s.com/Code/Java/Development-Class/AverysimpleCSVwriterreleasedunderacommercialfriendlylicense.htm
出于某种原因,"quoteChar" = "\u0000"
没有像 中建议的那样为我工作。
在字段周围不带引号的情况下保存到文件时,我使用:
-- saving to file
INSERT OVERWRITE LOCAL DIRECTORY 'file:/home/sidazhou/temp'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT *
FROM temp_table
;
PS。我知道这不是要问的问题,它涉及 ROW FORMAT SERDE
而不是 ROW FORMAT DELIMITED FIELDS
。
由于默认情况下 serde 引用字段,我怎么能不使用 serde 引用我的字段?
我试过了:
row format serde "org.apache.hadoop.hive.serde2.OpenCSVSerde"
with serdeproperties(
"separatorChar" = ",",
"quoteChar" = "")
但是我得到了
FAILED: SemanticException java.lang.StringIndexOutOfBoundsException: String index out of range: 0
您可以通过将 \u0000
指定为引号字符来实现此目的。由于 quoteChar
需要一个字符串,因此您应该使用 NULL
.
ROW FORMAT SERDE
"org.apache.hadoop.hive.serde2.OpenCSVSerde"
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = "\u0000")
这个 unicode NULL \u0000
被 CSV writer
class 用作 NO_QUOTE_CHARACTER
的值:http://www.java2s.com/Code/Java/Development-Class/AverysimpleCSVwriterreleasedunderacommercialfriendlylicense.htm
出于某种原因,"quoteChar" = "\u0000"
没有像
在字段周围不带引号的情况下保存到文件时,我使用:
-- saving to file
INSERT OVERWRITE LOCAL DIRECTORY 'file:/home/sidazhou/temp'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT *
FROM temp_table
;
PS。我知道这不是要问的问题,它涉及 ROW FORMAT SERDE
而不是 ROW FORMAT DELIMITED FIELDS
。