Filter 带滤波器的火花读数

Filter 带滤波器的火花读数,filter,apache-spark,Filter,Apache Spark,我正在使用Spark Java API。我正试图从目录中读取一个文件并过滤掉一些行。我的代码如下所示: final JavaSparkContext jsc = new JavaSparkContext(sparkConf); JavaRDD<String> textFile = jsc .textFile("/path/to/some/file"); //First Read.... JavaRDD<Msg> parsedMessages = textFile.map

我正在使用Spark Java API。我正试图从目录中读取一个文件并过滤掉一些行。我的代码如下所示:

final JavaSparkContext jsc = new JavaSparkContext(sparkConf);
JavaRDD<String> textFile = jsc .textFile("/path/to/some/file");

//First Read....
JavaRDD<Msg> parsedMessages = textFile.map(....);

//Then Filter
JavaRDD<Msg> queryResults = parsedMessages.filter(....)
final JavaSparkContext jsc=新的JavaSparkContext(sparkConf);
javarddtextfile=jsc.textFile(“/path/to/some/file”);
//首读。。。。
JavaRDD parsedMessages=textFile.map(..);
//然后过滤
JavaRDD queryResults=parsedMessages.filter(..)

有没有办法将读取和筛选操作合并到同一个操作中?像用过滤器阅读?我有一个非常具体的要求,我必须查询一个非常大的数据集,但我得到的结果集相对较小。然后,我必须对过滤后的数据进行一系列转换和计算。我不想把整个数据集读入内存,然后过滤掉。我没有那么多的记忆力。相反,我想做的是在读取时对其进行过滤,以便只读取与某些正则表达式匹配的行。这可能与Spark有关吗?

至少对于
SparkContext.textFile
没有这样的选项,但应该不会有问题。除了在驱动程序上采集数据外,不要求所有数据都必须在任何位置驻留在内存中。数据以块的形式读取,您可以使用
minPartitions
参数减小单个分割的大小


我的建议是尽快使用正常的
过滤器
操作,并
持久化
生成的RDD,以避免重新计算

至少对于
SparkContext.textFile
来说,没有这样的选项,但应该不会有问题。除了在驱动程序上采集数据外,不要求所有数据都必须在任何位置驻留在内存中。数据以块的形式读取,您可以使用
minPartitions
参数减小单个分割的大小


我的建议是尽快使用正常的
过滤器
操作,并
持久化
生成的RDD,以避免重新计算

至少对于
SparkContext.textFile
来说,没有这样的选项,但应该不会有问题。除了在驱动程序上采集数据外,不要求所有数据都必须在任何位置驻留在内存中。数据以块的形式读取,您可以使用
minPartitions
参数减小单个分割的大小


我的建议是尽快使用正常的
过滤器
操作,并
持久化
生成的RDD,以避免重新计算

至少对于
SparkContext.textFile
来说,没有这样的选项,但应该不会有问题。除了在驱动程序上采集数据外,不要求所有数据都必须在任何位置驻留在内存中。数据以块的形式读取,您可以使用
minPartitions
参数减小单个分割的大小


我的建议是尽快使用正常的
过滤器
操作,并
持久化
生成的RDD,以避免重新计算

Spark并不能完全按照您编写代码的方式执行代码,而是通过优化器执行。这段代码的编写方式(读取、映射和筛选-其间没有无序操作)spark将实际执行读取、映射转换和每行读取时的筛选-也就是说,它不需要内存中的所有数据。

spark不完全按照您编写代码的方式执行-它通过优化器。这段代码的编写方式(读取、映射和筛选-其间没有无序操作)spark将实际执行读取、映射转换和每行读取时的筛选-也就是说,它不需要内存中的所有数据。

spark不完全按照您编写代码的方式执行-它通过优化器。这段代码的编写方式(读取、映射和筛选-其间没有无序操作)spark将实际执行读取、映射转换和每行读取时的筛选-也就是说,它不需要内存中的所有数据。

spark不完全按照您编写代码的方式执行-它通过优化器。这段代码的编写方式(读取、映射和过滤-其间没有混洗操作)spark实际上会在读取时对每行执行读取、映射转换和过滤-也就是说,它不需要内存中的所有数据