Sql 从databricks表的字符串列收集用户信息(电子邮件、ip地址等)
我在databricks表中有一个字符串列,其中包含文本数据。我想从本专栏中提取用户信息,如电子邮件、IP地址和社会安全号码 我目前正在列上应用regex以获得以下值:Sql 从databricks表的字符串列收集用户信息(电子邮件、ip地址等),sql,apache-spark-sql,databricks,Sql,Apache Spark Sql,Databricks,我在databricks表中有一个字符串列,其中包含文本数据。我想从本专栏中提取用户信息,如电子邮件、IP地址和社会安全号码 我目前正在列上应用regex以获得以下值: %sql SELECT * FROM my_table WHERE col like '%_@__%.__%'; 用于在同一列上使用其他正则表达式提取其他信息。 是否有任何通用查询可用于从列中查找这些用户信息?除了使用正则表达式,我们还有其他方法吗 列值示例: abc@gmail.com test@gmail.com 测试
%sql
SELECT * FROM my_table WHERE col like '%_@__%.__%';
用于在同一列上使用其他正则表达式提取其他信息。
是否有任何通用查询可用于从列中查找这些用户信息?除了使用正则表达式,我们还有其他方法吗
列值示例:
- abc@gmail.com
- test@gmail.com
- 测试
- 测试
- 123456
- 11.0.6.13
- 22.44.66.7
- 测试
- 49.37.4.136
- 103.136.64.304
- 您是否考虑过使用regexp\u 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
我的结果与您的样本数据:
您的方法必须更加复杂,例如,电子邮件的正则表达式是错误的。1。您是否可以在列中显示示例值?2.split(…)用示例编辑了我的问题我想,regex