我有代碼:from functools import reducepublic_ids = [1,2,3,4,5]filepath = '/path/to/file/'rdd = sc.textFile( filepath)new_rdd = reduce( lambda a, b: a.filter( lambda x: b not in x ), public_ids, rdd)此代碼假設(shè)根據(jù) id 列表過濾 rdd 中的行。rdd 是使用 spark 上下文 sc 的 textFile 方法從位于 filepath 中的文件創(chuàng)建的。此代碼工作正常,但 pylint 引發(fā)錯誤:E: 未定義變量 'b'(未定義變量)我相信我編碼它的方式不是正確的方式。如何更改它以便 pylint 不會再次引發(fā)錯誤?或者它只是一個pylint不能正確識別的結(jié)構(gòu)?
1 回答

慕無忌1623718
TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個贊
很可能是pylint中的一個錯誤。
這是2 年前的類似錯誤報告
foo = lambda x: lambda: x + 1 print(foo(1)())
運(yùn)行時正確打印 2,但 pylint 錯誤報告
E: 1,24: Undefined variable 'x' (undefined-variable)
這是 pylint 1.4.x 的回歸。
這是最近的一個問題,在 11/14/2018 報告了同樣的問題
該問題已在 #760 報告并由 #2274 修復(fù)。但是,該修復(fù)程序僅合并到僅支持 python >= 3.4 的 pylint 2.x 中,這讓我們留下了 python 2 的 pylint 1.x 系列中未解決的錯誤。
編輯
看起來您的誤報可能與上述問題略有不同,但我仍然認(rèn)為這是一個錯誤。
我會嘗試在他們的 repo 上創(chuàng)建一個問題,看看會發(fā)生什么(如果你決定這樣做,請在評論中發(fā)布鏈接,以便我們可以關(guān)注它。)
添加回答
舉報
0/150
提交
取消