es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Equivalente de Spark SQL para Split_Part()

Estoy intentando obtener el equivalente para

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

en Spark SQL.

¿Alguien puede ayudar, por favor?

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

Contexto:

to_id = ASIN|CATALOG|B0896YZABL_7
expected = B0896YZABL
current output = |
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada ‘B0896YZABL’ utilizando Spark SQL, el código equivalente sería:

    SELECT
    to_id
    ,substring_index(to_id, '_', 1) as marketplace_id
    ,from_id
    ,substring_index(substring_index(to_id, '_', -1), '|', 3) as asin
    FROM DDD
    

    Explicación:
    substring_index(to_id, '_', 1) divide to_id en la primera aparición del guión bajo ‘‘ y devuelve la primera parte antes de él, dando el marketplace_id.
    substring_index(substring_index(to_id, '_', -1), '|', 3) divide to_id en la última aparición del guión bajo ‘
    ‘ y devuelve la última parte después de él. Luego divide la última parte en el carácter de barra vertical ‘|’ y devuelve la tercera parte, dando el asin.
    – La columna from_id permanece igual que en la consulta original.

Comments are closed.