我在Pypark有个df
|id |Name |Age |
|-- |------ |--- |
|1 |John |31 |
|2 |Sam |34 |
|3 |Chris |28 |
我需要换到df以下,
|id | Name | Age |
| ------ | ---------------- | ----------- |
|{'v':1} | {'v':'John'} | {'v':31} |
|{'v':2} | {'v':'Sam'} | {'v':34} |
|{'v':3} | {'v':'Chris'} | {'v':28} |
尽管此代码在python中工作,但在Pypark中不工作:
df = df.apply(lambda x: [{'value':i} for i in x] , axis=0)
在pyspark中最有效的方法是什么,因为有50多列和10个这样的表。
2条答案
按热度按时间eimct9ow1#
你可以用
create_map
要创建Map列,请执行以下操作:使用
to_json
要从Map中获取json字符串:lrpiutwd2#
您可以将每一列转换为一个具有名为
value
,并转换为json: