检索 Azure 数据砖中'-'符号之前的字符



我想从'-'符号之前的列中提取数据。我可以用T-SQL很容易地做到这一点,但当我在Azure Databricks中做同样的事情时,我会遇到错误。我还希望能够检查列是否有这样的符号,并且在它不存在的地方,我不想提取数据。

在T-SQL中,我可以写:

SELECT EmailAddress
,SUBSTRING(emailaddress, 0, charindex('@', emailaddress, 0))
FROM [dbo].[DimEmployee]

请问我如何在Databricks中获得相同的结果?

  1. 要查找带有'-'符号的记录,可以使用pyspark.sql.Column.contains

    Column.contains(other)
    

包含其他元素。基于字符串匹配返回布尔列。

  1. 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

最新更新