【发布时间】:2020-08-13 05:32:39
【问题描述】:
我正在使用 pyspark SQL 函数 input_file_name 将输入文件名添加为数据框列。
df = df.withColumn("filename",input_file_name())
该列现在具有如下值。 "abc://dev/folder1/date=20200813/id=1"
从上面的列中,我必须创建 2 个不同的列。
- 日期
- 身份证
我只需要从上述文件名中获取日期和 ID 并将其填充到上述列中。
我可以使用 split_col 并得到它。但是如果文件夹结构发生变化,那可能是个问题。
有没有办法检查文件名是否包含字符串“date”和“id”,并获取等于符号后的值并填充两个新列?
下面是预期的输出。
filename date id
abc://dev/folder1/date=20200813/id=1 20200813 1
【问题讨论】:
-
我没有使用 Spark 的经验,只是好奇,你为什么不能在字符串中做 'date' 而在字符串中做 'id'?
标签: python apache-spark pyspark hdfs