2016-07-28 191 views
-2

是否有可能在一個特定的列值在RDD .Eg過濾:篩選火花RDD

[(u'62d45630-587a-4290-91e1-a86fbe019bb5', (Row(process_id=1, event_id=u'62d45630-587a-4290-91e1-a86fbe019bb5', event_type=u'PlannedCustomerChoiceWasUpdated', publishedDate=u'2016-07-27T04:16:13.650Z', tgt_tbl_n=u'raw_plan', subj_area=u'plan', flag=u'R', url=u'http://gbp-router.gapinc.dev:8080/planning-service/planning/buy-plan/planned-customer-choices/a448760d-6d92-4dc9-b04a-7ec22673a158', url_id=u'a448760d-6d92-4dc9-b04a-7ec22673a158'), '{"ts":"2016-07-28T11:54:54.748Z","httpStatus":404,"errors":[{"code":"notFound","message":"Planned Customer Choice with id a448760d-6d92-4dc9-b04a-7ec22673a158 does not exist."}],"requestId":"ugM4CXkgax5qxILq"}', None, u'2016-07-27T04:16:13.650Z', 'N'))] 

的RDD是關鍵,價值form.I想在值過濾[ 4],即'N'。 任何人都可以請幫助我。

回答

-1

我不太明白你想要完成什麼,因爲你的問題對我來說有點不清楚,但是在RDD上有不同的過濾方法。

RDD本身沒有一個模式,所以你不能按照我所知在這裏按列進行過濾。如果您想要在RDD上運行SQL查詢,則可以通過應用架構並使用toDF()函數將RDD轉換爲Dataframe。然後可以對數據庫中的表格同樣處理Dataframe。

http://spark.apache.org/docs/latest/sql-programming-guide.html#interoperating-with-rdds

另一種方法上的RDD濾波器是一個過濾器()函數。

http://spark.apache.org/docs/latest/quick-start.html#basics

我猜你的RDD有一個可迭代的第二值的元組的形式。您可以通過Iterable運行並篩選與您的條件不符的所有值。您也可以篩選您的Iterable中的最後一個位置,因爲您的數據語法總是相同的。

希望有幫助!