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

Phoenix-Spark API有像HBase API一样的checkAndPut方法吗?

闻人和歌
2023-03-14

我使用的是Spark1.3、HBase1.1和Phoenix4.4。我的代码中有以下内容:

val dataframe = sqlContext.createDataFrame(rdd, schema)
dataframe.save("org.apache.phoenix.spark", SaveMode.Overwrite,
    Map("table" -> "TEST_SCHEMA.TEST_HTABLE", "zkUrl" -> zkQuorum))

在DataFrame中,CREATED_DATE始终设置为dateTime.now()。

但是如何使用Phoenix-Spark API来实现呢?我应该改用HBase API吗?

共有1个答案

仲孙思源
2023-03-14

方法1:在这种情况下,您应该检查该行是否存在。如果行存在,则从dataframe中删除CREATED_DATE列。
方法2:如果不能从dataframe中删除CREATED_DATE列,则需要编写一个预置协处理器,该协处理器将在对区域服务器执行任何PUT操作之前运行。这个appraoch会稍微难一点。所以,我建议第一种方法。

 类似资料:
  • 项目启动,但是css没有加载出来 GET http://127.0.0.1:4000/assets/app.css 404 (Not Found)

  • 我已经使用空手道6个月了,我真的对它提供的功能印象深刻。我知道空手道是为了单独测试API,但我们也试图将它用于E2E测试,这涉及到一步一步地调用多个场景。我们的功能文件如下1。调用功能1:Scenario1 2。调用功能2:Scenario2....注意:我们正在重新使用一个用于API测试和E2E测试的场景,有时我发现很难记住所有的特性文件。我们是否可以像java那样链式调用场景,我怀疑特性文件会

  • 和都有构造函数来设置初始容量,但提供以确保如果预期插入大量元素,内部数组已经增加。在某些情况下,也可能发生同样的事情。那么为什么没有确保容量的方法来保持存储桶准备就绪?

  • 问题内容: 为什么列表没有像字典一样安全的“获取”方法? 问题答案: 最终,它可能没有一个安全的方法,因为a是一个关联集合(值与名称相关联),在这种情况下,检查键是否存在(并返回其值)而不抛出异常是非常低效的,而这是非常琐碎的避免异常访问列表元素(因为该方法非常快)。该方法允许您查询与名称关联的值,而不是直接访问字典中的第37个项目(这更像是您要查询的列表中的内容)。 当然,您可以自己轻松实现此目

  • 问题内容: 我已经使用LESS.js之前。易于使用,类似 我看到SASS.js。如何以类似方式使用它?解析SASS文件以立即在HTML中使用。似乎SASS.js更适合与Node.js一起使用? 问题答案: 没有官方批准的sass或scss JavaScript实现。我看到了一些正在实施的实现,但是目前我不推荐使用这些实现。 但是,请注意以下几点: 当您一次可以对所有用户进行编译时,为什么要让所有用

  • 嗨,我有一个try catch块,在这个我需要打印调用堆栈,当我有一个IOException时。我想,那只是e.printStackTrace(),但我不太确定,因为这个,我想在这里问一下。