Spark中HIVE表的显示[重复]
Posted
技术标签:
【中文标题】Spark中HIVE表的显示[重复]【英文标题】:Display of HIVE table in Spark [duplicate] 【发布时间】:2018-01-03 15:04:09 【问题描述】:我正在尝试读取 Spark 1.6.1 中的 HIVE 表。一切都按要求工作,只有 Spark 中表格的显示是有线的。 HIVE 表包含 1 亿条奇数记录。
import os
from pyspark import SparkContext
sc = SparkContext("local", "Simple App")
from pyspark.sql import HiveContext
hive_context = HiveContext(sc)
db= hive_context.sql("SELECT * FROM HIVE_DB.HIVE_TBL").show()
如您所见,我编写了查询以查看全部 1 亿条记录。但输出仍然是 20 条记录。我的问题:
这是 Spark 1.6.1 的某种限制吗?
如果是,是否在更高的 Spark 版本中排除了限制?
如果以上都不是,那么有没有办法更改此配置以查看任何记录?
我也尝试过以下查询::
SELECT * FROM HIVE_DB.HIVE_TBL LIMIT 200
还是一样的显示。
【问题讨论】:
我看到了你分享的链接,我认为这是需要的解决方案。虽然我仍然需要测试它。完成后会在这里发布我的发现 【参考方案1】:show()
- 仅显示 20 行。因此,如果将show()
的结果分配给变量db
,它将只有20 个。
在分配期间删除show()
,并使用db.limit(n)
来限制行数。
【讨论】:
【参考方案2】:在 Scala 中,下面的代码可以工作
import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc)
var db = sqlContext.sql("select *from database_name.table_name")
db.take(n).foreach(println) #n, number of records
db = sqlContext.sql("select *from database_name.table_name").limit(n)
#n, number of records.
db.foreach(println);
【讨论】:
以上是关于Spark中HIVE表的显示[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Spark Shell 的 Spark Session 中不显示新插入的 Hive 记录