【问题标题】:How to read the file name while reading the files from s3 using pyspark如何在使用pyspark从s3读取文件时读取文件名
【发布时间】:2021-11-16 17:11:19
【问题描述】:

我有一个用例,在 s3 中有多个文件,我正在阅读如下:

df1 = spark.read.csv("s3://bucket/fact/*.dat")

所有 .dat 文件的开头都有 6 位数字,即 PO id

190234_purcahse.dat
125134_purcahse.dat

读取时我需要在数据帧 df1 中作为新列的这个 PO id。我怎样才能以最有效的方式实现这一目标? 有什么方法可以在读取文件时获取文件名?

【问题讨论】:

    标签: python-3.x pyspark


    【解决方案1】:

    使用来自 spark 的 input_file_name() 函数。

    df1 = spark.read.csv("s3://bucket/fact/*.dat").withColumn("fn",input_file_name())
    

    然后使用 regexp_extract() 函数提取您的 PO id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-05
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多