#sql #apache-spark-sql #amazon-redshift
#sql #apache-spark-sql #амазонка-красное смещение
Вопрос:
Я пытаюсь получить эквивалент для
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 = |
Ответ №1:
Вы должны избежать вертикального стержня |
, как это \|
.
Ниже приведен простой пример Scala, вы можете попробовать его в интерактивной оболочке Scala:
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