是否有一種有效的方法來根據input_file_name
過濾輸入文件中的火花數據幀而不讀取所有文件的內容?`input_file_name`上的過濾器火花路徑
我有一個S3的路徑與許多大gzipped csvs(xx.csv.gz
),我通過spark.read.csv("path/to/csvs/*")
閱讀。我想根據文件名過濾輸入,而不使用glob模式。
但是,當我使用withColumn("file_name", input_file_name())
將輸入文件名添加到Dataframe並使用where
進行過濾時,我看到所有文件都被處理並讀取。
有沒有一種更有效的方法來做到這一點,而不訴諸處理所有的每個文件?
謝謝!
您可以隨時直接查詢文件系統,繞過Spark。如果是HDFS,你可以這樣做:https://stackoverflow.com/questions/23478377/listing-all-files-available-in-spark-cluster-stored-on-hadoop-hdfs-using-scala-o – jamborta