首页 > 解决方案 > 从 s3 加载 pyspark 数据框并保留行顺序

问题描述

我想使用 pyspark 加载 s3 csv 文件,并在加载的数据框中保留与 s3 文件相同的行顺序。请分享向数据框添加索引以维护 s3 的行顺序的方法。

我尝试了这种方法,但有时会保留与 s3 一样的确切行顺序,有时则不会(可能是由于默认分区)。 注意:我不想订购任何商品。

前任:

df=spark.read.option("header", True).option("delimiter", "|").option("escape", "").csv("s3path")
df.createOrReplaceTempView("df")

df_rw=spark.sql("select col1,col2,row_number() over (order by (SELECT NULL)) as rownum  from df")
df_rw.createOrReplaceTempView("df_rw")

前任:

s3 file order
cont|name|age
ind|kohli|30
ind|rohit|30
ind|rishabh|26

预期顺序:

cont name age rownum
ind kohli 30 1
ind rohit 30 2
ind rishabh 26 3

有时会得到订单:

cont name age rownum
ind rishabh 26 1
ind kohli 30 2
ind rohit 30 3

标签: dataframeapache-sparkamazon-s3pysparkloading

解决方案


推荐阅读