Apache spark pyspark中的windowPartitionBy和重新分区
我有一个小的SparkR代码,我想把它转换成pyspark。我不熟悉此windowPartitionBy和重新分区。你能帮我了解一下这个代码在做什么吗Apache spark pyspark中的windowPartitionBy和重新分区,apache-spark,pyspark,apache-spark-sql,sparkr,Apache Spark,Pyspark,Apache Spark Sql,Sparkr,我有一个小的SparkR代码,我想把它转换成pyspark。我不熟悉此windowPartitionBy和重新分区。你能帮我了解一下这个代码在做什么吗 ws <- orderBy(windowPartitionBy('A'),'B') df1 <- df %>% select(df$A, df$B, df$D, SparkR::over(lead(df$C,1),ws)) df2 <- repartition(col = df1$D) ws在pyspark中,它相当于:
ws <- orderBy(windowPartitionBy('A'),'B')
df1 <- df %>% select(df$A, df$B, df$D, SparkR::over(lead(df$C,1),ws))
df2 <- repartition(col = df1$D)
ws在pyspark中,它相当于:
from pyspark.sql import functions as F, Window
ws = Window.partitionBy('A').orderBy('B')
df1 = df.select('A', 'B', 'D', F.lead('C', 1).over(ws))
df2 = df1.repartition('D')
代码正在从窗口ws
的下一行的df
列A、B、D和C列中选择df1
然后它使用D列将df1
重新分区到df2
。基本上,分区意味着数据帧在内存/存储器中的分布方式,它直接影响到数据帧的并行处理方式。如果您想了解有关重新划分数据帧的更多信息,可以转到pyspark中的,它相当于:
from pyspark.sql import functions as F, Window
ws = Window.partitionBy('A').orderBy('B')
df1 = df.select('A', 'B', 'D', F.lead('C', 1).over(ws))
df2 = df1.repartition('D')
代码正在从窗口ws
的下一行的df
列A、B、D和C列中选择df1
然后它使用D列将df1
重新分区到df2
。基本上,分区意味着数据帧在内存/存储器中的分布方式,它直接影响到数据帧的并行处理方式。如果您想了解有关重新划分数据帧的更多信息,可以访问