首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SQL.Row迭代PySpark列表

问用SQL.Row迭代PySpark列表
EN

Stack Overflow用户
提问于 2015-10-27 02:25:50
回答 1查看 3.6K关注 0票数 1

我有一个Spark.SQL.Row,它看起来像这样:

代码语言:javascript
复制
my_row = Row(id = 1,
    value = [Row(id = 1, value = "value1"), Row(id = 2, value = "value2")])

我想从每个嵌套的行中获取值,如下所示:

代码语言:javascript
复制
[x.value for x in my_row.value]

问题是,当我迭代时,整个行被转换成元组,

代码语言:javascript
复制
my_row = (1, [(1, "value1"), (2, "value2")])

我失去了模式。是否有方法迭代和保留行列表的架构?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 06:29:08

准确地说,pyspark.sql.row实际上是一个tuple

代码语言:javascript
复制
isinstance(my_row, tuple)
# True

由于Python是不可变的,我看到的唯一选项是从头开始重建Row:

代码语言:javascript
复制
d = my_row.asDict()
d["value"] = [Row(value=x.value) for x in  my_row.value]
Row(**d)

## Row(id=1, value=[Row(value='value1'), Row(value='value2')])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33358962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档