gpt4 book ai didi

python - Spark中python的类似 'dict.get'的方法

转载 作者:行者123 更新时间:2023-11-30 22:35:19 26 4
gpt4 key购买 nike

我是 Spark 新用户,我使用 Python 进行编码。我创建一对 RDD,然后收集并广播它。 python 中是否有类似 dict.get() 的方法可以用来通过键获取 Broadcast 对象的值,并在键不存在时设置默认值。我收到报告 AttributeError: 'Broadcast' object has no attribute 'get'

最佳答案

广播变量是要广播的值的包装器,可以通过调用 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

查看官方文档here .

关于python - Spark中python的类似 'dict.get'的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com