在spark中,当从hdfs中阅读文件时,我想为每条记录添加一列到df中,其中包含读取记录的文件的文件创建时间戳。
例如HDFS具有以下结构
/data/module/
|----------- file1.parquet
|----------- file2.parquet
|----------- file3.parquet
|----------- file4.parquet
字符串
当这个目录在spark中读取时,我想为每个记录添加一个列,该列应该具有从中读取记录的文件的文件创建时间戳。
我试着用df.withColumn("records_inserted_time", current_timestmap())
但这给予了所需的结果。
1条答案
按热度按时间idfiyjo81#
根据您提供的信息,看起来您希望向DF的每条记录添加一列,该列应该具有特定记录所在文件的时间戳。
为此,您可以使用spark._jvm中的FileSystem类,并获得文件名沿着文件创建时间。
字符串
一旦你有了文件名和创建时间,你可以简单地用一个look函数来添加新的列。
我已经为这个问题创建了一个解释和示例代码的帖子。https://medium.com/@azam.khan681542/apache-spark-get-source-files-created-timestamp-as-a-column-in-dataframe-4fb1baca82bd