如何从PySpark Row对象中访问整数命名的属性?
如何访问PySpark Row中整数命名的属性值?
你遇到的问题是PySpark Row对象中存在整数类型的键(比如示例里的3),常规的.属性访问或字符串键索引无法获取对应值,这里提供两种可行的解决方法:
通过位置索引访问:PySpark Row本质是有序的类元组结构,你可以直接用元素的位置下标来取值。示例中键
3对应的是第二个元素,所以用下标1即可获取:from pyspark.sql import Row rr=Row('a',3) r = rr(3,4) print(r[1]) # 输出:4转换为字典后访问:将Row对象转为普通字典,字典支持整数作为键,直接用整数键即可取值:
r_dict = dict(r) print(r_dict[3]) # 输出:4
补充说明:之所以r['3']不行,是因为Row里的键是整数类型而非字符串;而r.3不符合Python标识符命名规则(不能以数字开头),所以这两种方式都无法生效。
内容的提问来源于stack exchange,提问作者figs_and_nuts
相关产品推荐
相关产品推荐

