dataframe - 从 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
解决方案
推荐阅读
- apache-poi - Apache POI 在替换 doc 文件中的字符串后破坏了目录
- python - ValueError:检查输入时出错:预期 conv2d_1_input 的形状为 (None, 50, 30, 3) 但得到的数组的形状为 (1, 3, 50, 30)
- service-worker - Workbox 调试模式可以供公众使用吗?
- arrays - 多个二维数组的相关系数
- java - 在 Java/Jackson 中从“数组”中获取元素
- android - 由于 RecylerView 第一次跳过了 Fragment Transition
- c# - 最有效地实现具有大量点的图
- opencl - 截至 2018 年年中,NVIDIA SPIR 支持的状态如何?
- java - 用于文件轮询的spring集成java dsl中的Nio locker使用
- sql-server - pecl install sqlsrv 失败并出现配置错误:C 编译器无法在 SLES 12 上创建可执行文件