【发布时间】:2017-11-06 15:25:06
【问题描述】:
在我的场景中,我将 CSV 文件不断上传到 HDFS。
上传新文件后,我想使用 Spark SQL 处理新文件(例如,计算文件中字段的最大值,将文件转换为 parquet)。即我在每个输入文件和转换/处理的输出文件之间有一个一对一的映射。
我正在评估 Spark Streaming 以侦听 HDFS 目录,然后使用 Spark 处理“流文件”。
但是,为了处理整个文件,我需要知道“文件流”何时完成。我想将转换应用于整个文件,以保留文件之间的端到端一对一映射。
如何转换整个文件而不是它的微批次?
据我所知,Spark Streaming 只能将转换应用于批处理(DStreams 映射到 RDDs),而不能一次应用于整个文件(当其有限流完成时)。
正确吗?如果是这样,我应该为我的方案考虑什么替代方案?
【问题讨论】:
-
一个文件在被 Spark Streaming 拾取之前被完全写入 HDFS,所以我不明白这个问题
-
@cricket_007 你能澄清一下你的意思吗?
标签: apache-spark hadoop hdfs spark-structured-streaming