我有一个Spark.SQL.Row,它看起来像这样:
my_row = Row(id = 1,
value = [Row(id = 1, value = "value1"), Row(id = 2, value = "value2")])我想从每个嵌套的行中获取值,如下所示:
[x.value for x in my_row.value]问题是,当我迭代时,整个行被转换成元组,
my_row = (1, [(1, "value1"), (2, "value2")])我失去了模式。是否有方法迭代和保留行列表的架构?
发布于 2015-11-25 06:29:08
准确地说,pyspark.sql.row实际上是一个tuple
isinstance(my_row, tuple)
# True由于Python是不可变的,我看到的唯一选项是从头开始重建Row:
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')])https://stackoverflow.com/questions/33358962
复制相似问题