与 textFile() 相比,Spark binaryRecords() 的性能较低

罗汉·洛佩斯

我有如下的火花作业代码。在集群上使用以下配置可以正常工作。

String path = "/tmp/one.txt";
JavaRDD<SomeClass> jRDD = spark.read()
                            .textFile(path)
                            .javaRDD()
                            .map(line -> {
                                return new SomeClass(line);
                            }); 

Dataset responseSet = sparkSession.createDataFrame(jRDD, SomeClass.class);
responseSet.write()
            .format("text")
            .save(path + "processed");

然而,如果我想读取二进制文件(与文本大小相同),则需要更多时间。

String path = "/tmp/one.txt";
JavaRDD<SomeClass> jRDD = sparkContext
                            .binaryRecords(path, 10000, new Configuration())
                            .toJavaRDD()
                            .map(line -> {
                                return new SomeClass(line);
                            }); 

Dataset responseSet = spark.createDataFrame(jRDD, SomeClass.class);
responseSet.write()
            .format("text")
            .save(path + "processed");      

下面是我的配置。

driver-memory 8g
executor-memory 6g
num-executors 16

具有 150 MB 文件的第一个代码所花费的时间为 1.30 分钟。具有 150 MB 文件的第二个代码所花费的时间为 4 分钟。

此外,第一个代码能够在所有 16 个执行程序上运行,而第二个代码仅使用一个。

任何建议为什么它很慢?

罗汉·洛佩斯

我发现了这个问题。textFile()方法正在创建16 partitions(您可以在 RDD 上检查numOfPartitionsusinggetNumPartitions()方法)而binaryRecords()仅创建 1 个(Java binaryRecords 不提供指定要创建的分区数的重载方法)。

我增加numOfPartitions了通过在 RDD 上binaryRecords()使用repartition(NUM_OF_PARTITIONS)方法创建的RDD。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Spark中的textFile读取和转换数据

来自分类Dev

如何使用spark sc.textFile获取文件名?

来自分类Dev

Spark: how to use SparkContext.textFile for local file system

来自分类Dev

与TFBertModel相比,TFBertMainLayer的准确性较低

来自分类Dev

与模板相比,std :: Function性能

来自分类Dev

RestSharp与WebRequest相比的性能问题

来自分类Dev

与Perl相比Java性能问题

来自分类Dev

mongodb使用性能较低的索引

来自分类Dev

设置大小时 std::vector 的性能较低?

来自分类Dev

apache spark textfile到一个字符串

来自分类Dev

使用sc.textFile(“ s3n:// ...)从S3 Spark读取文件

来自分类Dev

Spark:如何将SparkContext.textFile用于本地文件系统

来自分类Dev

在Spark中,参数“ minPartitions”在SparkContext.textFile(path,minPartitions)中有什么作用?

来自分类Dev

如何在Spark TextFile函数中使用自定义换行符?

来自分类Dev

在spark上运行wordcount >>> lines = sc.textFile(“ README.md”)>>> lines.count()

来自分类Dev

FMA性能与单纯计算相比

来自分类Dev

UnQLite的表现如何?与SQLite相比(性能)如何?

来自分类Dev

与n相比,log(n!)的性能如何?

来自分类Dev

与[Parameter]相比,[CascadingParameter]是否会影响性能?

来自分类Dev

与指针相比,链式公共成员访问的性能

来自分类Dev

if语句的性能与使用接口的性能相比如何?

来自分类Dev

从Textfile读取行范围

来自分类Dev

确定TextFile编码?

来自分类Dev

显示TextFile到listView

来自分类Dev

用Java写入TextFile

来自分类Dev

显示TextFile到listView

来自分类Dev

Swift数组,TextFile?

来自分类Dev

Java程序TextFile问题

来自分类常见问题

如何提高Spark性能?

Related 相关文章

热门标签

归档