首页 > 解决方案 > 根据大小(mb/gb)读取 spark 数据帧

问题描述

在这种情况下请帮助我,我想根据大小(mb/gb)而不是行数来读取火花数据帧。假设我的数据库中有 500 MB 空间留给用户,并且用户想要再插入 700 MB 数据,那么我如何从 Jdbc 驱动程序中识别表大小,以及如何从我的 700Mb spark 数据帧中仅读取 500 MB 数据.

标签: javascalaapache-sparkjdbcapache-spark-sql

解决方案


在程序中限制数据大小是不正确的。您应该捕获异常并将其显示给用户。由用户决定是否要增加数据库大小或从数据库中删除不需要的数据。

对于上述问题,spark 有一个叫做 size estimator 的东西。我以前没用过。但是你可能不会得到准确的数据大小,因为它是一个估计器

import org.apache.spark.util.SizeEstimator
SizeEstimator.estimate(df)

请参阅以获取更多信息。


推荐阅读