apache-spark - 一旦处理开始,Spark 会从目录中获取新文件吗?
问题描述
如果我使用
sc.textFile("/my/dir1")
为目录中的所有文件创建RDD,并且已经有另一个应用程序在其中写入(因此,如果处理时间很长,将添加新文件),spark 是否也会获取新文件,或者只是在启动时找到的那些?(我真的需要后者……)
解决方案
最简洁的答案是不。原因是 RDD 或 Dataframe 是不可变的数据结构。一旦创建了 RDD/Dataframe,就无法附加到该数据结构。
当您读取目录中的数据时,spark 将在 RDD 中创建,以跟踪读取数据中的分区。那么这个 RDD 是不可变的。所以 spark 将继续执行在启动时找到的分区
替代方法是使用火花流,在将新数据添加到目录时发现新数据。
推荐阅读
- mysql - MySQL 将四个表(相关)组合成一个新表,以便我可以导出到 CSV
- r - R中的数据框名称是重复的
- ios - 图片未显示在表格单元格中
- vba - 我可以使用 API 或其他东西来接近 VBA 中的 TRUE RANDOM NUMBER 吗?
- mysql - MYSQL:VIEW的DDL中的字符串几个小时后变成乱码
- python - TypeError: 'float' object is not iterable 尝试获取 GPA 列表的总和和平均值时
- vue.js - 如何使用 Blob URI 在 IE11 中显示 PDF 预览
- python - 如何将多列旋转为两列,同时将列名和值都保留为python中的行条目
- r - 在第 0 级,第 1 块的反向求解中的奇点
- wpf - 带有 Caliburn.micro 的 MVVM - 使用可绑定集合填充 Datagrid 控件