Pysparkの割り当てで苦労しています。チャンネルごとにすべての視聴数の合計を取得する必要があります。私は2セットのファイルを持っています。1つはショーを表示し、1つはショーごとに表示し、もう1つはショーを表示し、どのチャンネルに表示されますか(複数でもよい)。Pysparkタプルオブジェクトには属性が分割されていません
..私は2つのファイルに結合操作を実行した結果は次のようになります
[(u'Surreal_News', (u'BAT', u'11')),
(u'Hourly_Sports', (u'CNO', u'79')),
(u'Hourly_Sports', (u'CNO', u'3')),
の合計を取得するためにreduceByKeyを行い、私は今、キーとチャンネルを抽出する必要があり、その後、私が思う
チャンネルの再生回数
私はchanをビューの横にキーとして抽出するためにこの関数を書いていますが、reduceByKey関数を使用して結果を合計できます。しかし、私が収集した関数(下記の結果を表示しようとすると)私は「はAttributeError: 『をタプル』オブジェクトが属性 『スプリット』がありません」を取得、これは割り当てているので、エラー
def extract_chan_views(show_chan_views):
key_value = show_chan_views.split(",")
chan_views = key_value[1].split(",")
chan = chan_views[0]
views = int(chan_views[1])
return (chan,views)
クイックレスポンスJeffに感謝します。私の関数でそのコードを使用すると、エラー "TypeError: '型'オブジェクトが反復可能ではありません。私のPythonの知識はあまり良くありませんので、私はオンラインでもう少し研究を行い、データをループするいくつかのPysparkの例を見つけます。しかし、反復可能ではないオブジェクトは何ですか?私は自分の関数が引数として別のRDDの1行しか取らないと思ったのですが、なぜそれが反復不可能であると言っているのでしょうか? – chucknor
あなたの例で言及している 'your_list'は私の関数がとる引数なので、私の場合は 'show_chan_views'ですか?私が以下のコードを試してみると、3行目の '値が大きすぎて解凍しません'というエラーが出ます。 [96]:def extract_chan_views(show_chan_views): ....:show_chan_viewsのアイテム: ....:first_index、second_index = item ....:first_sub_index、second_sub_index = second_index ....:return(first_sub_index、second_sub_index) – chucknor
最初のエラーは、forループで何をしようとしていても、反復できるものではないことを示しています。それが何であるかを確認してください。 2番目のエラーは、オブジェクトに3つの変数がある場合など、2つの変数に展開しようとしていることを意味します。 – Jeff