Сбор информации о пользователе (электронная почта, IP-адрес и т. Д. c) из строкового столбца таблицы Databricks - PullRequest
1 голос
/ 14 июля 2020

У меня есть строковый столбец в таблице блоков данных, содержащий текстовые данные. Я хочу извлечь информацию о пользователе из этого столбца, такую ​​как адрес электронной почты, IP-адрес и номер социального страхования.

В настоящее время я применяю регулярное выражение для столбца, чтобы получить такие значения, как:

%sql
SELECT * FROM my_table WHERE  col like '%_@__%.__%';

то же самое для извлечения другая информация с использованием другого регулярного выражения в том же столбце. Есть ли какой-нибудь общий запрос c, который можно использовать для поиска этой информации о пользователе из столбца? И есть ли у нас какой-либо другой метод, кроме использования регулярного выражения?

Примеры значений столбцов:

  • abc@gmail.com
  • test@gmail.com
  • тестирование
  • тестирование
  • 123456
  • 11.0.6.13
  • 22.44.66.7
  • тестирование
  • 49.37.4.136
  • 103.136.64.304

1 Ответ

1 голос
/ 22 июля 2020

Рассматривали ли вы использование regexp_extract, например,

%sql
SELECT *,
  regexp_extract( yourColumn, '(.*@.*)', 1 ) AS email,
  regexp_extract( yourColumn, '([a-z]+)', 1 ) AS someText,
  regexp_extract( yourColumn, '(\\d+)', 1 ) AS someDigits,
  regexp_extract( yourColumn, '([0-9]{6})', 1 ) AS sixDigits,
  regexp_extract( yourColumn, '(\\d+\.\\d+\.\\d+\.\\d+)', 1 ) AS ipAddress
FROM tmp

Мои результаты с вашими данными образца:

Мои результаты

Ваш подход должен быть более сложным, например, регулярное выражение для электронной почты неверно.

...