假设我有一个键值对列表:
kvs = [('x', 0), ('a', 1)]
现在,我想从Row
创建一个Spark kvs
,其密钥顺序与kvs
相同。
如何在Python
?
答案 0 :(得分:1)
我还没有运行它,但如果失败,我可以在运行后检查一下。
from pyspark.sql import Row
kvs = [('x', 0), ('a', 1)]
h = {}
[h.update({k:v}) for k,v in kvs]
row = Row(**h)
答案 1 :(得分:1)
你可以:
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
。