将连续分隔符视为一个定界符的HIVE表属性

将连续分隔符视为一个定界符的HIVE表属性,hive,hiveql,regexserde,Hive,Hiveql,Regexserde,在上面的数据集中,第二行的第1列和第2列之间有连续分隔符。如何将连续分隔符作为一个分隔符处理 jan 18 "value1 is null" feb 4 "value1 is null" 示例不清楚1月18日“value1为空”\n 2月4日“value1为空”我可以看到示例,但没有看到2列,也没有看到任何分隔符。我可以猜测,您希望CSV serde将“value1为空”视为单个值。它是2行3列。2月和4之间有2个空格,因为4是第二行中的一个位数示例不清楚1月18日“value1为空

在上面的数据集中,第二行的第1列和第2列之间有连续分隔符。如何将连续分隔符作为一个分隔符处理

jan 18 "value1 is null"
feb  4 "value1 is null"





示例不清楚
1月18日“value1为空”\n 2月4日“value1为空”
我可以看到示例,但没有看到2列,也没有看到任何分隔符。我可以猜测,您希望CSV serde将
“value1为空”
视为单个值。它是2行3列。2月和4之间有2个空格,因为4是第二行中的一个位数示例不清楚
1月18日“value1为空”\n 2月4日“value1为空”
我可以看到示例,但我没有看到2列,也没有看到任何分隔符。我猜您需要CSV serde,以便将
“value1为null”
视为单个值。它是2行3列,在feb和4之间有2个空格,因为4是第二行中的一个数字。这是唯一可能的方法吗?或者通过使用“org.apache.hadoop.hive.contrib.serde2.multidivideserde”我们可以得到它。因为我的数据集中有75列。MultiDelimiterSerde似乎只处理固定长度的分隔符。谢谢朋友。这是唯一可能的方法吗?或者通过使用“org.apache.hadoop.hive.contrib.serde2.multidivideserde”我们可以得到它。因为我的数据集中有75列。MultiDelimiterSerde似乎只处理固定长度的分隔符。
create external table mydata 
(
    c1 string
   ,c2 string
   ,c3 string
)
row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'
with serdeproperties ('input.regex' = '(".*?"|.*?)\\s+(".*?"|.*?)\\s+(".*?"|.*?)')
location '/user/hive/warehouse/mydata'
;
select * from mydata;
+-----------+-----------+------------------+
| mydata.c1 | mydata.c2 |    mydata.c3     |
+-----------+-----------+------------------+
| jan       |        18 | "value1 is null" |
| feb       |         4 | "value1 is null" |
+-----------+-----------+------------------+