【问题标题】:How to create Spark Row from list of key-value pairs如何从键值对列表中创建 Spark Row
【发布时间】:2017-10-01 10:57:38
【问题描述】:

假设我有一个键值对列表:

kvs = [('x', 0), ('a', 1)]

现在我想从 kvs 创建一个 Spark Row,其键顺序与 kvs 中的键顺序相同。
Python怎么办?

【问题讨论】:

标签: python apache-spark pyspark


【解决方案1】:

我还没有运行它,但是如果失败,我会在运行后编辑。

from pyspark.sql import Row
kvs = [('x', 0), ('a', 1)]
h = {}
[h.update({k:v}) for k,v in kvs]
row = Row(**h)

【讨论】:

【解决方案2】:

你可以:

from pyspark.sql import Row

Row(*[k for k, _ in kvs])(*[v for _, v in kvs])

但我认为最好避免使用Row。除了作为一个方便的类来表示从 JVM 后端获取的本地值之外,它在 Spark 中没有特殊含义。几乎在所有情况下:

tuple(v for _, v in kvs)

Row 的完美替代品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-31
    • 2019-08-09
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2016-10-08
    相关资源
    最近更新 更多