Extract a string from a another column using regexp_extract

Viewed 42

I want to get data of s[0] from "column1":

sada/object=fan/sn=dadfs/s[0]=gsf,sdfs,sfdgs,/s[1]=dfsd,sdg,hte,/redirect=sdgfd/

Output should be values of s[0]

gsf,sdfs,sfdgs

I was trying to do using \ and it's not working

REGEXP_EXTRACT(column1, 's\\[0\\] = ([^&]+)')

This is in PySpark.

1 Answers

Input:

from pyspark.sql import functions as F

# Spark dataframe:
df = spark.createDataFrame([("sada/object=fan/sn=dadfs/s[0]=gsf,sdfs,sfdgs,/s[1]=dfsd,sdg,hte,/redirect=sdgfd/",)], ["column1"])

# SQL table:
df.createOrReplaceTempView("df")

PySpark:

df.select(F.regexp_extract('column1', r's\[0\]=(.*?),/', 1).alias('match')).show()
# +--------------+
# |         match|
# +--------------+
# |gsf,sdfs,sfdgs|
# +--------------+

SQL:

spark.sql("select regexp_extract(column1, r's\\[0\\]=(.*?),/', 1) as match from df").show()
# +--------------+
# |         match|
# +--------------+
# |gsf,sdfs,sfdgs|
# +--------------+
Related