Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 一旦处理开始,Spark会从目录中拾取新文件吗?_Apache Spark - Fatal编程技术网

Apache spark 一旦处理开始,Spark会从目录中拾取新文件吗?

Apache spark 一旦处理开始,Spark会从目录中拾取新文件吗?,apache-spark,Apache Spark,如果我使用 sc.textFile("/my/dir1") 要为目录中的所有文件创建RDD,并且已经有另一个应用程序在其中写入(因此,如果处理时间较长,将添加新文件),spark是否也会获取新文件,或者仅获取启动时找到的文件?(我真的需要后者…简短的回答是否定的。原因是RDD或Dataframe是一个不可变的数据结构。一旦创建了RDD/Dataframe,就无法将其附加到该数据结构中 当您读取目录中的数据时,spark将在RDD中创建,该RDD跟踪读取数据中的分区。因此,这个RDD是不可变的。

如果我使用

sc.textFile("/my/dir1")

要为目录中的所有文件创建RDD,并且已经有另一个应用程序在其中写入(因此,如果处理时间较长,将添加新文件),spark是否也会获取新文件,或者仅获取启动时找到的文件?(我真的需要后者…

简短的回答是否定的。原因是RDD或Dataframe是一个不可变的数据结构。一旦创建了RDD/Dataframe,就无法将其附加到该数据结构中

当您读取目录中的数据时,spark将在RDD中创建,该RDD跟踪读取数据中的分区。因此,这个RDD是不可变的。所以spark将继续执行启动时找到的分区


另一种方法是使用spark streaming,将新数据添加到目录时会在其中发现这些数据

也许你应该看看流媒体选项我不需要流媒体选项,因为我不想让它接收新文件。谢谢