小编Mav*_*ick的帖子

选择表是否存在于 Apache Hive 中

我有一个 hive 查询的格式,

select . . . from table1 left join (select . . . from table2) on (some_condition)
Run Code Online (Sandbox Code Playgroud)

根据环境,table2可能不存在。因此,如果仅存在 table2,我想加入,否则只需忽略子查询。

如果存在,以下查询将返回 table_name,

show tables in {DB_NAME} like '{table_name}'
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将其集成到我的查询中以仅在它存在时进行选择。

在 hive 查询中有没有办法在选择之前检查表是否存在。

感谢任何帮助

注意:如果表不存在,我不想创建它。

hadoop hive hiveql

5
推荐指数
1
解决办法
1587
查看次数

执行生成的jar文件时出错

我有一个Java项目,带有用于REST服务的嵌入式jetty服务器和jersey库.我正在使用Intellij来运行项目及其工作.问题是当我尝试执行生成的jar文件时.

所以我编写了一个在build.gradle文件中生成jar文件的任务.以下是build.gradle中的任务

task fatJar(type: Jar) {
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': 1.0
        attributes 'Main-Class': 'EmbeddedJetty.EmbeddedJettyMain'
    }
}
Run Code Online (Sandbox Code Playgroud)

运行以下命令时会生成jar文件

gradle clean build fatJar
Run Code Online (Sandbox Code Playgroud)

当我尝试使用该命令生成的jar文件时,我面临以下错误

java -jar projectname.rar

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
    at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:284)
    at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:238)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:273)
    at java.util.jar.JarVerifier.update(JarVerifier.java:228) …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea executable-jar gradle

4
推荐指数
1
解决办法
3441
查看次数

如何在Spring-kafka中实现ConsumerSeekAware?

我正在尝试使用 @KafkaListener 实现消费者。我使用的是Spring2.3.7版本。

这是到目前为止我的代码,

public class SampleListener {

@KafkaListener(topics = "test-topic",
        containerFactory = "sampleKafkaListenerContainerFactory",
        groupId = "test-group")
public void onMessage(@Payload String message,
                              @Header(KafkaHeaders.RECEIVED_PARTITION_ID) int partition,
                              @Header(KafkaHeaders.RECEIVED_TOPIC) String topic,
                              @Header(KafkaHeaders.RECEIVED_TIMESTAMP) long receivedTimestamp,
                              @Header(KafkaHeaders.OFFSET) long offset,
                              @Headers MessageHeaders messageHeaders) {

    LOGGER.info("Received Message for topic={} partition={} offset={} messageHeaders={}",
            topic, partition, offset, messageHeaders);
    LOGGER.debug("Received Message payload={}", message);
    doSomething(message);

   }
}
Run Code Online (Sandbox Code Playgroud)

我是卡夫卡和春天的新手。我阅读了有关如何寻求偏移量的 spring-kafka 文档,但无法完全理解。

据我了解,对于我的用例,当分区分配给容器或在任何其他场景中时,我不想再次读取事件(确保只读取一次)。

我看到大多数 Consumer 实现都实现了ConsumerSeekAware。我知道实施ConsumerSeekAware使我们能够寻求对诸如onIdleContainer或 之类的事件进行抵消onPartitionsAssigned。我无法理解这些正在处理什么场景?

  1. ConsumerSeekAware实施来处理哪些场景?实现 Kafka Consumer 需要寻求抵消的最佳实践或一般场景是什么?

  2. registerSeekCallback …

spring kafka-consumer-api spring-kafka

3
推荐指数
1
解决办法
7144
查看次数