You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark 1.6.1读取HIVE表显示条数异常问题咨询

解决Spark 1.6.1中Hive表查询显示记录数限制的问题

嘿,这个问题其实和Spark版本的固有限制关系不大,主要是你用的show()方法本身的默认配置在搞鬼!下面给你详细拆解:

为什么只显示20条?

Spark DataFrame的show()方法默认最多只会输出20行数据,这个行为和你查询语句里的LIMIT完全无关——哪怕你写了LIMIT 200,如果没给show()传参数,它依然只会截取前20行显示。这是因为show()的设计初衷是快速预览数据,避免一次性加载大量数据占用Driver节点的内存。

怎么修改显示任意数量的记录?

解决方法超简单,调用show()的时候直接传入你想要显示的行数就行:

# 显示200条记录
hive_context.sql("SELECT * FROM HIVE_DB.HIVE_TBL").show(200)

# 如果需要显示更多,比如1000条(注意内存压力)
hive_context.sql("SELECT * FROM HIVE_DB.HIVE_TBL").show(1000)

不过要提醒你:如果尝试用show()显示1亿条全量数据,会把所有数据拉到Driver节点,大概率会触发内存溢出(OOM),非常不建议这么做。如果需要查看全量数据,更合理的方式是把数据写入外部存储(比如HDFS、本地文件)后再查看:

hive_context.sql("SELECT * FROM HIVE_DB.HIVE_TBL").write.mode("overwrite").csv("/path/to/save")

高版本Spark的情况

在Spark 2.x及以上版本中,show()方法的默认显示行数依然是20,但同样支持通过传入参数修改显示数量——并没有取消这个限制,毕竟快速预览数据的需求一直存在,默认限制是为了保护Driver节点的内存。

内容的提问来源于stack exchange,提问作者user3521180

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:59:00