Python 如何在pyspark代码中对表字段进行排序
我想将我的表按顺序id、poperty_名称、时间和值排列 我使劲地洗牌所有的组合Python 如何在pyspark代码中对表字段进行排序,python,pyspark,Python,Pyspark,我想将我的表按顺序id、poperty_名称、时间和值排列 我使劲地洗牌所有的组合 my_row = parsed1.map(lambda x: { "id": (str(x[3]) + ":" + str(x[0]) + ":" +str(x[1])), "property_name": x[4], "time" : x[1], "value": x[2], }) 我一直有订单时间,id,属性名称,值,我不明白为什么。这些x[0,…4]只表示我正在解析的J
my_row = parsed1.map(lambda x: {
"id": (str(x[3]) + ":" + str(x[0]) + ":" +str(x[1])),
"property_name": x[4],
"time" : x[1],
"value": x[2],
})
我一直有订单时间,id,属性名称,值,我不明白为什么。这些
x[0,…4]
只表示我正在解析的JSON对象中的字段。一切都正常,所有的提取都正常,但顺序不是。我需要精确的排序,因为这需要用Cassandra DB编写。只需按您想要的顺序使用select:
sorted_df = df.select("id", "poperty_name", "time", "value")
select
语句将只保留数据框中的某些列,而删除所有其他列。您正在查找sort
语句
当然,我假设您还需要指定特定维度的排序方式。我添加了一个额外的参数desc
,以便您可以看到如何(在排序语句中)调整执行方式
以下是一个例子:
from pyspark.sql.functions import desc
my_row = parsed1.map(lambda x: {
"id": (str(x[3]) + ":" + str(x[0]) + ":" +str(x[1])),
"property_name": x[4],
"time" : x[1],
"value": x[2],
})
sorted_my_row = my_row \
.sort(col("id"), \
col("property_name"), \
col("time").desc(), \
col("value"))