我在Pyspark任務中掙扎。我需要獲得每個頻道的所有觀看人數的總和。我有兩組文件: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)
謝謝傑夫的快速反應。當我在我的函數中使用該代碼時,出現錯誤「TypeError:'type'object is not iterable」。我的Python知識並不好,所以我會在網上做更多的研究,並找到一些Pyspark的例子來循環數據。但是什麼是不可迭代的對象。我認爲我的函數只接受另一個RDD的單行作爲參數,那麼爲什麼它說它不可迭代? – chucknor
是否在你的例子中提到了我的函數需要的參數'your_list',所以在我的例子'show_chan_views'中?當我嘗試下面的代碼時,我得到'太多值解包'的第3行的錯誤。在[96]的:def extract_chan_views(show_chan_views): ....:用於show_chan_views項: ....:FIRST_INDEX,second_index =項 ....:first_sub_index,second_sub_index = second_index ....:return(first_sub_index,second_sub_index) – chucknor
所以你得到的第一個錯誤告訴我們,無論你想在'for'循環中經歷什麼都不是可以迭代的東西。檢查它是什麼。第二個錯誤意味着當你的對象有三個時,你想解壓縮到兩個變量。 – Jeff