311.5. 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
DataFrame cars(HiveContext hiveContext) {
    DataFrame jsonCars = hiveContext.read().json("/var/data/cars.json");
    jsonCars.registerTempTable("cars");
    return jsonCars;
}