регулярное выражение для входа в систему регистрации улья с новой строкой - PullRequest
1 голос
/ 04 февраля 2020

С помощью aws сервисов athena я пытаюсь импортировать CSV-файл, включающий данные новой строки

При импорте данных используется формат Hive Serde.

Если данные такие, (все данные прилагаются в двойных кавычках. "")

"DataA" | "DataB" | "Data C"
"Data1" | "Data2
с новой строкой" | "Data3"
"Данные 가" | "Данные2 나" | "Данные 나"

тогда как записать регулярные выражения в таблицу 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 Афина

Спасибо

1 Ответ

0 голосов
/ 04 февраля 2020

Решил это. https://regex101.com/r/bYF1Zm/3

"([\w\s\n\r\X]+?)"\|"([\X\w\s\n\r]+?)"\|"([\X\w\s\n\r]+?)" с установленными флагами g lobal и u nicode.

Три вещи делали это сложно:

  1. Разрыв строки в середине данных в строке 2
  2. Пробел в середине данных в строке 2
  3. Unicode

Это регулярное выражение, вероятно, может быть более кратким, потому что соответствующий шаблон повторяется.

...