为什么在Spark / Dataproc上运行它需要这么长时间?

问题描述 投票:1回答:1

我正在使用在Dataproc集群上运行的Spark处理数据。我尝试过使集群更强大,增加了CPU和磁盘空间,但并没有太大帮助。我使用以下方法从BigQuery读取数据:

Dataset<Row> data = spark.read().format("bigquery")
    .option("table","project.dataset.tablename")
    .load()
    .cache();

我使用.cache()是因为我多次使用data

我也尝试过使用.text()而不是.csv(),但并没有得到改善。

唯一有用的是减少数据中的记录数。

我可以进行哪些更改以使其运行更快?

data.select("column1","column2")
    .write()
    .mode("append")
    .partitionBy("column1")
    .csv("gs://bucket/folder");
java apache-spark google-cloud-dataproc
1个回答
0
投票

您正在使用多少工人和主人?您正在处理的数据量是多少?

对于更高性能的群集,也应使用PD-SSD磁盘。 SSD永久磁盘专为具有高随机IOPS率的工作负载而设计,这可能会为某些Spark和Hadoop工作负载带来巨大的好处。

也..您是否考虑过数据流?它的启动时间更少,并且可以随数据量自动缩放,您的etl过程似乎很简单,是否有任何理由要使用dataproc?

© www.soinside.com 2019 - 2024. All rights reserved.