pyspark - 向 pyspark 数据框添加包含文件名的附加列
问题描述
我正在使用 for 循环遍历文件夹中的 csv 文件,并对每个 csv 执行一些操作(获取每个唯一 id 的行数并将所有这些输出存储到 pyspark 数据帧中)。现在我的要求是将文件的名称也添加到每次迭代的数据框中。谁能建议一些方法来做到这一点
解决方案
您可以使用该函数将文件名作为列获取pyspark.sql.functions.input_file_name
,如果您的文件具有相同的架构,并且您想要应用相同的处理管道,那么不需要循环这些文件,您可以使用正则表达式读取它们:
df = spark.read.csv("path/to/the/files/*.csv", header=True, sep=";") \
.withColumn("file_name", input_file_name())
推荐阅读
- java - HTTPServletRequest 对象 - 封装 - 最佳实践
- java - 无法反序列化为具体的 Java 类型
- wordpress - 更新旧插件
- pytest - 如何使用 tox+pytest 启用对 DeprecationWarning 和 PendingDeprecationWarning 的测试
- typescript - 定义某种类型的通用打字稿排序函数
- ruby-on-rails - Rails db:seed 未在 Ubuntu 16.04 上填充 postgresql
- node.js - 无法初始化 MongoDB
- php - 从回调返回值
- python - “ListedColormap”类型的对象没有 len()
- ios - 带有旋转图像的动画