当前位置: 首页 > 知识库问答 >
问题:

单个记录查找的Spark性能

夹谷山
2023-03-14

在互联网上研究了这个话题后,我找不到满意的答案,想把这个例子展示给SO社区,看看这是与我们的环境或数据相关的单个一次性案例,还是与Spark相关的更大模式。

Spark 1.6.1 Spark conf:执行器2个,执行存储器32G,执行器核心4个。

数据在一个内部配置单元表中,该表存储为ORC文件类型,用zlib压缩。压缩文件的总大小为2.2GB。

#Python API    
#orc with zlib key based select
dforczslt = sqlContext.sql("SELECT * FROM dev.perf_test_orc_zlib WHERE test_id= 12345678987654321")
dforczslt.show()

共有1个答案

朱硕
2023-03-14

以下步骤可能有助于提高Spark SQL查询的性能。

通常,Hive占用整个Hadoop集群的内存,它明显大于executer内存(这里是2*32=64GB)。节点的内存大小是多少?。

此外,与由配置单元查询生成的MAP/Reduce作业的数量相比,执行器的数量似乎更少(2)。以2的倍数增加执行器的数量可能有助于提高性能。

sqlContext.setConf("spark.sql.tungsten.enabled", "true")
sqlContext.setConf("spark.sql.orc.filterPushdown", "true")
 类似资料:
  • find 查找匹配标准的记录,可以链式查询(见下文): Person.find({status:'active'}, function(err, results) { // ... }); 你也可以限制结果的个数,这条语句限制结果为10个: Person.find({status:'active'}, 10, function(err, results) { // ... }); Pers

  • 我有下表: 我还有以下表: 现在我有以下疑问: 长话短说--我的目标是,给定值,从表中获取最新的值。 它应该是这样工作的:给定值-在表中搜索与相同值的匹配记录(注意此列是唯一的)。然后-在表中查找最新的值(使用值)。使用与表中的列匹配的列在此表中搜索它。 当前,该查询将返回,但不返回(我需要它是3030)。你能帮我修一下吗?

  • 在下面的java代码中,我正在进行DNS SRV记录查找,以解析给定域名的目标域名和相关端口,例如root@1000000000.blubluzone.com.用/HERE/below表示的查找函数以某种方式返回null,我无法获得查询结果(即记录数组为null)。因此,当在for循环中访问记录数组时,将引发空指针异常。 你认为我缺少什么来让下面的代码工作。我正在使用dnsjava,相关的API

  • 我已经用实现了一个Kafka消费者。我的使用者应该使用事件,然后为每个事件向其他服务发送REST请求。只有当REST服务关闭时,我才想重试。否则,我可以忽略失败的事件。 我的容器工厂配置如下: 我使用来设置异常和相应的重试策略。 如果我有机会了解中的哪个记录失败了,那么我将创建的自定义实现,以检查失败的消息是否可重试(通过使用字段)。如果它是不可重试的,那么我将从列表中删除它以重新查找。 关于如何

  • 问题内容: 如何提出一个存储过程来选择过去30天的结果? 问题答案: 用适当的列名称替换第一个GETDATE()。

  • 我在数据库中有两个带有绑定主键的表,我希望在它们之间找到一个不相交的集。例如 有列()和示例数据: 那么,我如何创建一个SQL查询,以便我可以从中获取没有在中的带有ID的行。在这种情况下,应该返回吗? PS:ID是这两个表的主键。