我在hive/impala中有两个表。我想从表中将数据提取为spark,并执行联合操作。从配置单元表中取数据到spark并在RDD上执行连接
我不想直接在我的配置单元上下文中传递连接查询。这只是一个例子。 我有更多的标准HiveQL无法使用的用例。 如何获取所有行,访问列并执行转换。
假设我有两个RDDS:
val table1 = hiveContext.hql("select * from tem1")
val table2 = hiveContext.hql("select * from tem2")
我想执行上一列RDDS称为“ACCOUNT_ID”
理想我想要做的使用使用火花RDDS像这样一个连接贝壳。
select * from tem1 join tem2 on tem1.account_id=tem2.account_id;
嗨霍尔登,谢谢,但我已经提到,我不想这样做。这只是一个简单的例子。我有一个用例,我有更复杂的查询。我希望能够从结果集中构建rdd并执行连接和其他操作。 – user1189851 2014-11-06 22:43:00
对不起user1189851,我以为你想避免在原始的hive表上进行连接。在上面的代码片段中,我发布了table1,table2可以是任何SchemaRDD(并且请注意,我们编写的任何查询都会让我们回到SchemaRDD中),您希望table1和table2是什么?你希望它们来自非Spark SQL源吗? – Holden 2014-11-06 23:21:23
所以我有我的第一个rdd是查询的结果集的情况。第二个是另一个查询的结果集。 val rdd1 = hiveContext.hql(“select * from table1”)和val rdd2。 = hiveContext.hql(“select * from table2”)。我想在这两个名为account_id的公共属性上执行say join。这个想法是我不想要在蜂巢上下文中的连接,我应该能够使用转换。 – user1189851 2014-11-07 14:47:47