313.6. Hive 任务

 除了使用 RDD 或 DataFrame Spark 组件外,还可接收 Hive SQL 查询作为有效负载。 要将 Hive 查询发送到 Spark 组件,请使用以下 URI:

spark RDD producer

spark:hive

以下片段演示了如何将消息作为输入发送到作业并返回结果:

调用 spark 任务

long carsCount = template.requestBody("spark:hive?collect=false", "SELECT * FROM cars", Long.class);
List<Row> cars = template.requestBody("spark:hive", "SELECT * FROM cars", List.class);

在我们查询前,我们希望对 进行查询的表应在 HiveContext 中注册。例如,在 Spring 中,注册示例如下:

spark RDD 定义

@Bean
Dataset<Row> cars(HiveContext hiveContext) {
     jsonCars = hiveContext.read().json("/var/data/cars.json");
    jsonCars.registerTempTable("cars");
    return jsonCars;
}