Vij*_*uri 5 apache-spark spark-streaming
Spark Streaming 如何fileStream从一个时间间隔到另一个时间间隔识别监控目录中的新文件?
它是基于新文件名还是文件创建时间戳或任何其他方法?
newFilesOnly辩论的意义何在?
fileStream(String directory, Class<K> kClass, Class<V> vClass, Class<F> fClass, Function<org.apache.hadoop.fs.Path,Boolean> filter, boolean newFilesOnly, org.apache.hadoop.conf.Configuration conf)
Run Code Online (Sandbox Code Playgroud)
关于监控的快速答案是它使用文件修改时间(isNewFileuses getFileModTime)
至于newFilesOnly....这并不是那么简单,但您可以从代码中辨别出此信息。
TL;DR; 是它只newFilesOnly = false从流开始的最后一分钟提取旧文件()。
此参数的更复杂答案是,它将一个值设置initialModTimeIgnoreThreshold为当前时间或 0。然后使用该值设置modTimeIgnoreThreshold,它是上述文件与搜索时间窗口中最旧文件的最大值 ( currentTime - durationToRemember.milliseconds) 。这就是刚刚修复的现有错误。时间窗口曾经是硬编码的一分钟窗口,因此如果将此参数设置为 false,则只能在最后 1 分钟内修改文件。不过,我仍然对这个修复持怀疑态度......但是,无论哪种方式,这个论点直到 3 天前才基本上被打破。
| 归档时间: |
|
| 查看次数: |
1222 次 |
| 最近记录: |