0
私のRDDには、TABで区切られた文字列があります。私はそれをフィルタ処理しようとしている:私はそこに同じ行の4つの分割をやっているので、私はその非常に効果的な解決策を考えていけないpysparkでのフィルタリング
filt_data = raw_data.filter(lambda x: '' if len(x.split('\t')) < 5 else "apple" in x.split('\t')[4] or "pear" in x.split('\t')[4] or "berry" in x.split('\t')[4] or "cherry" in x.split('\t')[4])
:列5は、いくつかの文字列が含まれている場合。いくつか、それを行うより最適な方法を示すことができますか?
「果物」の配列がある場合はどうなりますか?この配列の要素を含むRDDをどのようにフィルタリングできますか? x.split('\t')[4] in array
のようなことができますが、配列要素が列5の項目と等しい場合にのみフィルタリングされますが、列5に配列のいずれかの文字列が含まれているかどうかを確認する必要があります。
ありがとうございます!それはプロセスをスピードアップしました。どのように配列の内容でフィルタリングするための第二の質問についての任意のアイデア? – lacerated
私があなたの質問に答えたら、それを受け入れてください。あなたの2番目の質問については、それは良いアイデアだと思うし、うまくいくはずです。私はその部分を反映するために私の答えを更新しました。それがあなたのために働くかどうか確認してください。 – Yaron