2017-12-16 25 views
0

私は現在、DatabricksでPySparkを扱っています。文字列を切り捨てる方法を探していました。 たとえば、DataFrame8841673_3のID列を8841673に変更したいとします。pysparkで文字列を切り捨てる

私はどのように進めるべきかを知っていますか? regexp_extract

+0

は数が一貫長はありますか?アンダースコアはどこから削除していますか? –

答えて

2

正規表現:

from pyspark.sql.functions import regexp_extract 

df = spark.createDataFrame([("8841673_3",)], ("id",)) 

df.select(regexp_extract("id", "^(\d+)_.*", 1)).show() 
# +--------------------------------+ 
# |regexp_extract(id, ^(\d+)_.*, 1)| 
# +--------------------------------+ 
# |       8841673| 
# +--------------------------------+ 

regexp_replace

from pyspark.sql.functions import regexp_replace 

df.select(regexp_replace("id", "_.*$", "")).show() 
# +--------------------------+ 
# |regexp_replace(id, _.*$,)| 
# +--------------------------+ 
# |     8841673| 
# +--------------------------+ 

か、単にsplit

from pyspark.sql.functions import split 

df.select(split("id", "_")[0]).show() 
# +---------------+ 
# |split(id, _)[0]| 
# +---------------+ 
# |  8841673| 
# +---------------+ 
関連する問題