我使用pysparksql函数input\ file\ name将输入文件名添加为dataframe列。
df = df.withColumn("filename",input_file_name())
该列现在具有如下值。“://dev/folder1/date=20200813/id=1"
从上面的列中,我必须创建两个不同的列。
日期
身份证件
我只需要从上面的文件名中获取日期和id,并将其填充到上面提到的列中。
我可以用split\u col得到它。但如果文件夹结构发生变化,则可能是个问题。
有没有办法检查文件名中是否包含字符串“date”和“id”,并获取等于符号后的值并填充两个新列?
下面是预期输出。
filename date id
abc://dev/folder1/date=20200813/id=1 20200813 1
1条答案
按热度按时间mzsu5hc01#
你可以用
regexp_extract
有一个图案date=
以及id=
子字符串:输出: