[英]method like 'dict.get' of python in Spark
我是一個新的Spark用戶,我用Python編寫代碼。 我創建了一對RDD,然后收集並廣播它。 在python中是否有像dict.get()
這樣的方法可以用來通過鍵獲取Broadcast對象的值,並在鍵不存在時設置默認值。 我得到了報告AttributeError: 'Broadcast' object has no attribute 'get'
廣播變量是廣播值的包裝器,可以通過調用value
方法訪問其value
。 下面的代碼顯示了這個:
>>> broadcastVar = sc.broadcast([1, 2, 3])
<pyspark.broadcast.Broadcast object at 0x102789f10>
>>> broadcastVar.value
[1, 2, 3]
>>> broadcastVar.value[1]
2
在我們的例子中,我們播放了一個列表,但你也可以播放一個字典:
>>> dict = {"a":1}
>>> sc.broadcast(dict).value
{'a': 1}
如前所述,value方法將返回底層對象,在這種情況下,它是一個字典,因此您只需要訪問它。 所以這就是你要找的東西:
>>> print(sc.broadcast(dict).value.get("b", None))
None
>>> print(sc.broadcast(dict).value.get("a", None))
1
我有回None
這里,但你還不如回到你想要的東西:
>>> print(sc.broadcast(dict).value.get("v", -1))
-1
檢查的官方文檔在這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.