2016-07-28 22 views
-2

はRDD .Eg内の特定の列の値に基づいてフィルタリングすることが可能です:フィルター

[(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クエリを実行する場合は、Schemaを適用してtoDF()関数を使用して、RDDを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が第2の値として、反復処理可能とタプルの形を持っていると思います。 Iterableを実行し、条件に合致しないすべての値をフィルタリングすることができます。また、データの構文が常に同じであれば、Iterableの最後の位置をフィルタリングすることもできます。

希望に役立ちます!