首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电火花HiveContext.table和HiveContext.sql性能

电火花HiveContext.table和HiveContext.sql性能
EN

Stack Overflow用户
提问于 2018-01-25 11:41:48
回答 1查看 996关注 0票数 1

我想知道火花如何处理这些情况,什么将是更快和更好的使用。从dataframe中获得更好的本机计数,还是在spark中进行计数?这不仅关系到我认为的伯爵。

代码语言:javascript
复制
hc = HiveContext(sc)

t0 = time()
a = hc.table('default.testtable')
c = a.count()
tt = time() - t0
print(c)
print("Count for 1st case completed in {} seconds".format(round(tt,3)))

t0 = time()
b = hc.sql('select count(*) from default.testtable')
c1 = b.collect()
tt = time() - t0
print(c1)
print("Count for 2nd case completed in {} seconds".format(round(tt,3)))

如果我在单运行中执行它,它会给出:

代码语言:javascript
复制
77707920
Count for 1st case completed in 48.358 seconds
[Row(_c0=77707920)]
Count for 2nd case completed in 20.895 seconds

如果我单独执行,在注释第2次然后是第1次块之前,那么第1次甚至更快:

代码语言:javascript
复制
77707920
Count for 1st case completed in 18.717 seconds

[Row(_c0=77707920)]
Count for 2nd case completed in 19.074 seconds

两者的实际计划是相似的:

为收取:

代码语言:javascript
复制
== Physical Plan ==
TungstenAggregate(key=[], functions=[(count(1),mode=Final,isDistinct=false)], output=[_c0#9L])
+- TungstenExchange SinglePartition, None
   +- TungstenAggregate(key=[], functions=[(count(1),mode=Partial,isDistinct=false)], output=[count#12L])
      +- HiveTableScan MetastoreRelation default, testtable, None

数数:

代码语言:javascript
复制
== Physical Plan ==
TungstenAggregate(key=[], functions=[(count(1),mode=Final,isDistinct=false)], output=[count#9L])
+- TungstenExchange SinglePartition, None
   +- TungstenAggregate(key=[], functions=[(count(1),mode=Partial,isDistinct=false)], output=[count#12L])
      +- HiveTableScan MetastoreRelation default, testtable, None

星火如何看待它的内在?为什么性能结果是不同的?哪个本机数据数据计数或火花sql计数更适合使用?

EN

回答 1

Stack Overflow用户

发布于 2018-01-25 11:48:12

没有什么不同。在第一种情况下,你的测量是错误的。

  • 第一个时间块包括上下文初始化时间、执行器分配时间和其他一些次要任务。
  • 当一切就绪时,第二次封锁就来了。

如果您反转顺序,您将看到时间是相反的,sqltable快。

您还可以看到一些JVM和系统优化的结果,可以通过重复执行来提高性能。

如果您想获得可靠的估计值,请分别为每个场景运行程序,并在timeit中多次重复计时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48442024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档