簡體   English   中英

像Spark中的'dict.get'這樣的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM