首页 > 解决方案 > 向 pyspark 数据框添加包含文件名的附加列

问题描述

我正在使用 for 循环遍历文件夹中的 csv 文件,并对每个 csv 执行一些操作(获取每个唯一 id 的行数并将所有这些输出存储到 pyspark 数据帧中)。现在我的要求是将文件的名称也添加到每次迭代的数据框中。谁能建议一些方法来做到这一点

标签: pysparkpython-os

解决方案


您可以使用该函数将文件名作为列获取pyspark.sql.functions.input_file_name,如果您的文件具有相同的架构,并且您想要应用相同的处理管道,那么不需要循环这些文件,您可以使用正则表达式读取它们:

df = spark.read.csv("path/to/the/files/*.csv", header=True, sep=";") \
    .withColumn("file_name", input_file_name())

推荐阅读