来自SQL

时间:2015-11-04 21:30:43

标签: apache-spark

是否可以从下面的SQL查询中获得一对RDD 该对是((item_id,flight_id),metric1)
item_id,flight_id是group by的一部分。

SELECT
  item_id,
  flight_id,
  SUM(metric1) AS metric1
FROM mytable
GROUP BY
  item_id,
  flight_id

1 个答案:

答案 0 :(得分:1)

正如eliasah所述,您可以简单地映射RDD(在查询和rdd之间选择map),如下所示:

sqlContext.sql(query).map{case Row(item_id: U, flight_id: V, metric1: T) =>
  ((item_id, flight_id), metric1)}

TUV是数据类型,sqlContextSQLContext个实例,查询是您问题中提供的查询。< / p>