Spark DataFrame“限制”功能需要太多时间来显示结果

数据挖掘 大数据 阿帕奇火花 pyspark
2022-01-30 22:02:25
import pyspark
from pyspark.sql import SparkSession
from pyspark.conf import SparkConf
import findspark
from pyspark.sql.functions import countDistinct
spark = SparkSession.builder \
.master("local[*]") \
.appName("usres mobile related information analysis") \
.config("spark.submit.deployMode", "client") \
.config("spark.executor.memory","3g") \
.config("spark.driver.maxResultSize", "1g") \
.config("spark.executor.pyspark.memory","3g") \
.enableHiveSupport() \
.getOrCreate()

handset_info = ora_tmp.select('some_value','some_value','some_value','some_value','some_value','some_value','some_value')

我用 3gb 执行内存和 3gb 执行 pyspark 内存配置 spark。我的数据库有超过 7000 万行。显示我打电话给

 handset_info.show()

方法它在 2-5 秒之间显示前 20 行。但是当我尝试运行以下代码时

mobile_info_df = handset_info.limit(30)
mobile_info_df.show()

显示前 30 行需要太多时间(3-4 小时)。花那么多时间合乎逻辑吗?我的配置有问题吗。我的笔记本电脑的配置是:

  • Core i7(4 核)笔记本电脑,8GB 内存
1个回答

原因是方式限制和表演是在幕后实施的。Show 只读取前 20(前 n)行,这限制了在显示之前读取整个数据。请参阅 StackOverflow 上的此答案 -链接