pyspark—spark上的count()是否意味着所有数据都已存在于内存中,可以进行处理?

lp0sw83n  于 2021-05-17  发布在  Spark
关注(0)|答案(1)|浏览(329)

我的数据场景如下:
使用pyspark使用jdbc从数据库读取Dataframe中的数据
我做了一个count()调用,既可以查看记录的数量,也可以“知道”数据加载准备就绪的时间。我这样做是为了了解一个潜在的瓶颈。
写入s3中的文件(在同一区域中)
所以,我的目标是准确地知道何时加载了所有数据库/表数据,这样我就可以推断在作业变慢时是否存在读取或写入数据的问题。在我的第一次尝试中,我可以很快获得记录数(在作业运行2分钟之后),但我的猜测是,执行count()并不意味着数据全部加载(在内存中)。

ogsagwnx

ogsagwnx1#

当你做这件事的时候 count() 没有加载任何内容,这是一个触发数据处理的操作。
如果你有这样一个简单的逻辑计划:

spark.read(..)
.map(..)
.filter(..)
...
.count()

一旦您调用一个操作(在这个例子中),数据库就会被加载 count )

相关问题