1

使用 aws athena 服务,我尝试导入包含新行数据的 csv 文件

导入数据使用 hive serde 格式。

如果数据是这样的,(每个数据都用双引号括起来。"")

"DataA"|"DataB"|"DataC"
"Data1"|"Data2
with new line"|"Data3"
"Data가"|"Data2나"|"Data나"

那么如何将正则表达式写入下表DDL?

CREATE EXTERNAL TABLE ssdm_schema.ABCTable_regex (  
  Data_A VARCHAR(100)  
, Data_B VARCHAR(100)  
, Data_C VARCHAR(100)  
) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'  
WITH SERDEPROPERTIES (  
"input.regex" = '?????????'  
) 

我问这个问题是指以下答案。

如何处理 AWS Athena 中的嵌入换行符

谢谢

4

1 回答 1

0

解决了。https://regex101.com/r/bYF1Zm/3

"([\w\s\n\r\X]+?)"\|"([\X\w\s\n\r]+?)"\|"([\X\w\s\n\r]+?)"设置了global 和unicode 标志。

有三件事让这个变得棘手:

  1. 第 2 行数据中间的换行符
  2. 第 2 行数据中间的空白
  3. 统一码

这个正则表达式可能更简洁,因为匹配模式重复。

于 2020-02-04T02:09:45.750 回答