Har*_*euf 1 python apache-spark-sql
我们有一个 Blob 存储,全天都会有大量文件到达。我有一个批量运行的 Databricks 笔记本,读取目录列表,循环文件并将它们全部发送到 Azure SQLDW.Works 中。之后,处理后的文件将被移至存档中。但是循环文件列表、附加每个文件并将文件名添加到列的过程有点慢。我想知道这是否可以在 1 次运行中完成。可以一次加载所有 csv,但如何记住一列中相应的文件名。
有人有建议吗?
小智 5
我能想到的有几种方法
1. spark.read.format("csv").load("path").select(input_file_name())
2. spark.sparkContext.wholeTextFiles("path").map{case(x,y) => x} <-- avoid if data is huge
Run Code Online (Sandbox Code Playgroud)
两者都提供给定路径中的所有文件名。前一种基于 DF 可能比后一种 RDD 更快。
注意:尚未测试该解决方案。