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

Spark上的Apache Phoenix-无法插入到Phoenix HBase表/需要最佳实践建议

杨飞飙
2023-03-14

我有一张下面结构的桌子。

start_time,           end_time,                count

00:00:01              00:00:10                 1000

00:00:11              00:00:20                 800
UPSERT INTO trans_count(start_time, end_time, count) SELECT start_time, end_time, count? FROM trans_count WHERE start_time = ? AND end_time = ?

在Apache Storm中,我能够在configure方法中创建一个Phoenix Connection对象,并且能够每10秒使用一次相同的连接来upsert。

在Spark中,我不能创建一个连接对象并为RDD中的每个对象使用相同的对象。spark的输出将是一个JavadStream>,其中start_time、end_time、count都是映射中的键。

我最终为RDD的每个迭代创建一个连接对象,我觉得这不是正确的方法。我读过Phoenix connections是轻量级的,但是为每个RDD创建一个连接对象似乎不是正确的方法。

共有1个答案

宁侯林
2023-03-14

解决方案:

不是为每个objectin RDD创建连接,而是在RDD中为每个分区创建连接,并将其用于所有对象。

 类似资料:
  • 开发 PWA 项目过程中,为了能够开发出高性能的代码,我们需要对自己的代码进行一系列的规范约定。在本篇教程中列出一些编写高性能可维护代码的实践建议,供大家参考。 代码规范 首先参照规范写出的代码在可维护性和代码性能方面是非常有效的方法,我们在这里推荐大家参照百度前端编码规范: JavaScript 代码规范: https://github.com/ecomfe/spec/blob/master/j

  • 本文向大家介绍ThreadPoolExecutor 创建方法最佳实践?相关面试题,主要包含被问及ThreadPoolExecutor 创建方法最佳实践?时的应答技巧和注意事项,需要的朋友参考一下 在《阿里巴巴 Java 开发手册》“并发处理”这一章节,明确指出线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。 为什么呢? 使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源开

  • 我想知道人们在bigquery上构建和管理ETL作业时发现了哪些最佳实践/工具。 目前,我有很多sql模板(可怕的参数化的lob,日期等使用sed类型字符串替换成一个tmp.sql文件,然后运行),我使用命令行工具来运行它们的序列并将输出发送到表。它工作正常,但有点笨拙。我仍然不明白为什么我不能在bigQuery上运行存储过程类型参数化脚本。甚至是某种图形用户界面来构建和管理管道。 我喜欢bigq

  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En

  • VR设计 VR设计不同于平面体验设计。作为一种新的媒介,有新的最佳实践需要遵循,特别是保持用户的舒适性和存在性。这在如下指南中已经写得很透彻了: Oculus VR最佳实践 Leap Motion VR最佳实践指南 一些值得注意的事情: 公共的金科玉律是永远不要意外地把相机控制权从用户手中剥夺。 单位(比如对于位置)应该考虑使用米(m)。这是因为WebVR API以米为单位返回姿势数据,进而传送给