gpt4 book ai didi

python - 从 Pyspark Dataframe 列中提取文件扩展名

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:54 26 4
gpt4 key购买 nike

我有一个带有 FullPath 列的 pyspark 数据框。

如何使用函数 os.path.splitext(FullPath) 提取 FullPath 列中每个条目的扩展名并将它们放入新列中?

谢谢。

最佳答案

您可以使用 pyspark.sql.functions.regexp_extract()extract the file extension :

import pyspark.sql.functions as f
data = [
('/tmp/filename.tar.gz',)
]

df = sqlCtx.createDataFrame(data, ["FullPath"])
df.withColumn("extension", f.regexp_extract("FullPath", "\.[0-9a-z]+$", 0)).show()
#+--------------------+---------+
#| FullPath|extension|
#+--------------------+---------+
#|/tmp/filename.tar.gz| .gz|
#+--------------------+---------+

但是,如果您想使用 os.path.splittext(),则需要使用 udf(这会比上述替代方案慢):

import os
splittext = f.udf(lambda FullPath: os.path.splitext(FullPath)[-1], StringType())
df.withColumn("extension", splittext("FullPath")).show()
#+--------------------+---------+
#| FullPath|extension|
#+--------------------+---------+
#|/tmp/filename.tar.gz| .gz|
#+--------------------+---------+

关于python - 从 Pyspark Dataframe 列中提取文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49365911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com