【问题标题】:Spark SQL equivalent for Split_Part()Split_Part() 的 Spark SQL 等效项
【发布时间】:2021-12-07 16:31:45
【问题描述】:

我正在尝试获得等价物

split_part(split_part(to_id, '_', 1), '|', 3) 

在 Spark SQL 中

谁能帮忙

SELECT
to_id
,split(to_id,'_')[1] AS marketplace_id
,from_id
,split(split(to_id, '_')[0], '|')[2] AS asin
--,split(to_id, '|')[2] AS asin
FROM DDD

上下文:

to_id = ASIN|CATALOG|B0896YZABL_7 
expected = B0896YZABL 
current output = |

【问题讨论】:

    标签: sql apache-spark-sql amazon-redshift


    【解决方案1】:

    您必须像这样\\| 转义竖线字符|

    以下是一个简单的 Scala 示例,您可以在交互式 Scala shell 中尝试:

    val s = "ASIN|CATALOG|B0896YZABL_7"
    val result = s.split("\\|") // Will be Array(ASIN, CATALOG, B0896YZABL_7)
    print(result.last) // Prints 'B0896YZABL_7'
    

    在你的情况下,应该是:

    SELECT
    to_id
    ,split(to_id,'_')[1] AS marketplace_id
    ,from_id
    ,split(split(to_id, '_')[0], '\\|')[2] AS asin
    --,split(to_id, '\\|')[2] AS asin
    FROM DDD
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-01
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2015-08-01
      • 1970-01-01
      相关资源
      最近更新 更多