【发布时间】:2017-06-15 22:10:33
【问题描述】:
是否有一种有效的方法可以根据input_file_name 将输入文件过滤到 spark 数据帧中,而无需读取所有文件的内容?
我在 S3 上有一条路径,其中包含许多大型压缩 csv (xx.csv.gz),我正在通过 spark.read.csv("path/to/csvs/*") 读取它们。我想根据文件名过滤输入而不使用 glob 模式。
但是,当我使用 withColumn("file_name", input_file_name()) 将输入文件名添加到 Dataframe 并使用 where 对其进行过滤时,我看到所有文件都得到处理和读取。
有没有更有效的方法来做到这一点,而无需处理每个文件?
谢谢!
【问题讨论】:
-
您始终可以绕过 Spark 直接查询文件系统。如果是 HDFS,你可以这样做:stackoverflow.com/questions/23478377/…
标签: scala apache-spark