如何从键值对列表中创建火花行



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

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

现在,我想从kvs创建一个与kvs中相同键的Row
如何在Python中进行操作?

我还没有运行它,但是如果失败后,您可以检查一次。

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

您可以:

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的完全有效替代。

最新更新