我想从'-'符号之前的列中提取数据。我可以用T-SQL很容易地做到这一点,但当我在Azure Databricks中做同样的事情时,我会遇到错误。我还希望能够检查列是否有这样的符号,并且在它不存在的地方,我不想提取数据。
在T-SQL中,我可以写:
SELECT EmailAddress
,SUBSTRING(emailaddress, 0, charindex('@', emailaddress, 0))
FROM [dbo].[DimEmployee]
请问我如何在Databricks中获得相同的结果?
-
要查找带有'-'符号的记录,可以使用
pyspark.sql.Column.contains
Column.contains(other)
包含其他元素。基于字符串匹配返回布尔列。
regexp_extract_all function
提取str
中与正则表达式匹配并对应于正则表达式组索引的所有字符串。
regexp_extract_all(str, regexp [, idx] )
例如
SELECT regexp_extract_all('100-200, 300-400', '(\d+)-(\d+)', 1);
[100, 300]
请参阅-https://docs.databricks.com/sql/language-manual/functions/regexp_extract_all.html#regexp_extract_all-函数数据块sql