- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 PySpark 上有一个三列数据框,我正在尝试在 SQL 上执行与 RANK() OVER(PARTITION BY ... ORDER BY ...)
等效的操作。数据框 df
看起来像:
col1, col2, score
A , B , 0.500
...
我知道我可以为此使用窗口函数:
from pyspark.sql.window import Window
from pyspark.sql import functions as F
windowSpec = Window.partitionBy(df['col1']).orderBy(df['score'].desc())
df = df.select('col1', 'col2', 'score', F.rank().over(windowSpec).alias('rnk'))
对于非常大的 df
,这将需要花费大量时间跨分区打乱数据。有什么办法可以提高效率吗? (如果不需要,我不需要使用数据框。)
最佳答案
添加到@DanieldePaula 的评论;在 Spark SQL 中,避免随机播放很棘手(/通常不可能)。我已经与 spark sql Michael Armbrust 的牧羊人讨论过这个问题 - 理由是如果允许使用 preservesPartioning=true
的等价物(来自许多spark sql 查询中的核心 RDD
操作。
在任何情况下,对于您的查询,如果不进行混洗就很难获得结果 - 因为您的数据甚至还没有正确预分区。
如果您希望获得更好的性能,您需要:
RDD
原语手动执行窗口操作的等价物。现在这些听起来有点严重繁重..所以..您可能只想享受窗口的性能。
关于hadoop - 在 Spark 上进行 rank() 的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259241/
我正在尝试找出一种计算排名的方法。现在它只需要每个条目的赢/输的比率,所以例如100 次中,有 99 次获胜,则胜率达到 99%。但如果一个参赛作品在 1 票中赢得 1 票,那么它的获胜排名将是 10
我尝试了以下操作,但它没有对每个类别进行明智的排名。相反,在不考虑类别的情况下对所有记录进行排名。我希望每个类别重新出现排名 select rs.Section,rs.Field1,rs.Field
如何获得在分区更改时重新启动的 RANK?我有这张表: ID Date Value 1 2015-01-01 1 2 2015-01-02 1 1; 关于
由于我们可以使用 row_number() 获得分配的行号如果我们想使用 dense_rank() 在不跳过分区内的任何数字的情况下找到每一行的排名,我们为什么需要rank()功能,我想不出任何用例
我很难搜索可以帮助我构建文本序列(特征)分类器的文档、研究或博客。我拥有的文本序列包含网络日志。 我正在使用 TensorFlow 构建 GRU 模型,并将 SVM 作为分类函数。我在处理张量形状时遇
我遇到了这类错误。 colsys.f:1367.51: 1 NOLD, ALDIF, K, NCOMP, M, MSTAR, 3,DUMM,0)
import tensorflow as tf x = [[1,2,3],[4,5,6]] y = [0,1] z = [1,2] x = tf.constant(x) y = tf.constant
我在学习 SQL 中的排名函数,发现它使用的排名与 pandas 方法不同。如何得到相同的答案? 提问链接:https://www.windowfunctions.com/questions/rank
在 SQL Server 数据库中,我有一个我对排名感兴趣的值表。 当我执行 RANK() OVER (ORDER BY VALUE DESC) 作为 RANK 时,我得到以下结果(在假设表中): R
我有一个包含以下字段的游戏 table : ID Name Email Points ---------------------------------- 1 Jo
我有以下 TensorFlow 代码: layer_1 = tf.add(tf.matmul(tf.cast(x, tf.float32), weights['h1']), biases['b1'])
我是 Sentdex 教程的神经网络新手。我尝试运行该代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist i
我是 tensorflow 的新手,我正在尝试将双向 LSTM 的一些代码从旧版本的 tensorflow 更新到最新版本 (1.0),但我收到此错误: Shape must be rank 2 bu
我正在使用以下格式的数据集: Column 1 (What I Have), Column 2 (What I need to see) 8 1 8 1 8 1 9 2 9
我有一个 Keras 函数模型(具有卷积层的神经网络),它可以很好地与 tensorflow 配合使用。我可以运行它,我可以适应它。 但是,使用tensorflow gpu时无法建立模型。 这是构建模
MPI 中的进程以什么顺序执行?我的意思是排名明智的顺序? 例如:rank == 0 首先,rank == 1 接下来? 我通过在运行时给出以下命令来考虑两个过程: mpirun -np 2 示例。
我正在尝试使用 cvxpy(因此使用 cvxopt)在具有 28 个节点和 37 条线路的相对简单的网络中对最佳功率流进行建模,但得到的是“Rank(A) < p or Rank([G; A] ) <
我是 tensorflow 的新手,我正在做一些在线练习以熟悉 tensorflow。我要执行以下任务: Create two tensors x and y of shape 300 from an
我有一个 Ubuntu 对话语料库的 .tfrecords 文件。我正在尝试读取整个数据集,以便我可以将上下文和话语分成几批。使用 tf.parse_single_example 我能够阅读一个示例。
实际上我们不能在 if 语句中使用 tf.var 作为 bool 来代替使用 tf.cond。我为规范化输入数据编写了这段代码,但出现了令人困惑的错误,我哪里做错了? def global_co
我是一名优秀的程序员,十分优秀!