我在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