问题标签 [partition-by]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
897 浏览

sql - SQL 除外运算符和 CTE 选择第一个查询中的所有项目,但不选择第二个查询中的所有项目

我正在尝试获取下面第一个查询中的所有数据,但下面第二个查询中的数据除外。

在这里,我第一次尝试使用with cteand选择唯一数据/不同数据partition by

我尝试使用except,但出现此错误:

关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。***

0 投票
0 回答
120 浏览

sql - 如何将 partition-by 表达式中的参数设置为行值而不是设置的聚合值?

我试图在我的 sql 查询中使用这个数学公式来计算 EAM

EAM = 1/n * sum(abs(xi - avg(x)))

xi:是我在每个月的集合中的行的值。n:等于 1、2 或 3(取决于前 3 个月的存在情况)

问题是过去 3 个月(如果存在)或过去 1 或 2 个月(如果前几个月的数量少于 3)的平均值需要相同。但实际上,使用的平均值是每行的平均值。 实际和预期结果

0 投票
1 回答
33 浏览

sql-server - 如何按日期间隔对数据进行分区?

我很好奇这是否可以使用窗口函数按日期范围划分我的数据?我有桌子TerritoryRevenue

正如你所看到的,我已经对我的输出进行了排名,Revenue但没有按子句划分。我想Revenue在两个时间间隔内获得排名,比如说从 2006 年 7 月到 2007 年 6 月和 2007 年 7 月到 2008 年 6 月。

0 投票
1 回答
2090 浏览

scala - .rowsBetween(Window.unboundedPreceding,Window.unboundedFollowing)错误火花斯卡拉

您好我正在尝试将每个窗口的最后一个值扩展到该列的窗口的其余部分,count以便创建一个标志,该标志识别寄存器是否是窗口的最后一个值。我以这种方式尝试过,但没有奏效。

样本 DF:

结果(第一个分区的所有元素的列数需要为 5,第二个分区的所有元素的列数需要为 4):

然后我读到当你使用orderByafterwindowPartition子句时,你必须指定子句.rowsBetween(Window.unboundedPreceding, Window.unboundedFollowing)才能实现我所需要的。但是,当我尝试它时,我遇到了这个错误:

谢谢你的帮助!

0 投票
2 回答
72 浏览

sql - 你如何 Window.partitionBy 超过一个范围或条件?

我有一些按日期时间排序的数据,我想根据另一列(1 或 0)将值相加。但是,我需要这样做,以便它只对 5 秒后的值求和。我该怎么做呢?

前表

我不起作用的伪代码如下

结果看起来像

我不能使用滞后或领先,因为不是每一秒都在列表中。所以它必须是基于 GPS_TimeStamp 的条件。

提前致谢

0 投票
1 回答
1205 浏览

apache-spark - spark:将有序数据保存到镶木地板

我有 30TB 的数据按日期和小时划分,每小时分成 300 个文件。我进行了一些数据转换,然后希望数据按排序顺序排序并保存,以便 C++ 程序轻松摄取。我了解当您进行序列化时,排序仅在文件中是正确的。我希望通过更好地划分数据来规避这个问题。

我想同时按 sessionID 和时间戳排序。我不希望 sessionID 在不同文件之间拆分。如果我在 SessionID 上进行分区,我将有太多,所以我做一个模 N 来生成 N 个桶,旨在获得 1 个大约 100-200MB 的数据桶:

然后我按日期、时间和存储桶遣返,然后再排序

这会将数据保存到 dt/hr/bucket,每个存储桶中有 1 个文件,但排序丢失。如果我不创建存储桶和重新分区,那么我最终会得到 200 个文件,数据是有序的,但是 sessionIds 被拆分到多个文件中。

编辑:问题似乎出在使用 保存时partitionBy("dt","hr","bucket"),它随机重新分区数据,因此不再排序。如果我没有保存,partitionBy那么我得到的正是我所期望的 - N 个存储桶/分区的 N 个文件和 sessionIds 跨越一个文件,所有文件都正确排序。所以我有一个非火花黑客手动迭代所有日期+小时目录

如果您按列分区,排序,然后使用 partitionBy 使用同一列写入,那么您希望直接转储已排序的分区,而不是对数据进行一些随机重新洗牌,这似乎是一个错误。

0 投票
1 回答
593 浏览

apache-spark - 在 Spark 中读取使用 PartitionBy 或 BucketBy 写入的文件

在 Spark 中,当我们读取使用 partitionBy 或 bucketBy 写入的文件时,spark 如何识别它们属于这种类型(partitionBy/bucketBy)并因此读取操作变得高效?有人可以解释一下。提前致谢!

0 投票
4 回答
1382 浏览

sql - SQL Server - 使用 ROW_NUMBER() OVER PARTITION 函数设置值

大家好,感谢您花时间研究我的问题,

背景

我正在使用 ROW_NUMER() 函数和 PARTITION BY..ORDER BY 语句来为我的一个表中的每个值设置一个 varchar 值,并在其末尾增加一个 int 值。

这里的“cf”值来自每个 component_module_id 的 cf1-cfX

示例查询输出

我的问题

每当我尝试在其他地方使用这些 cf 值时,例如保存在临时表中,其他 Ordering 和 Grouping 语句都会更改这些值。这就像生成“cf”值的语句被保存,而不是“cf”值本身。

将上面的查询插入到临时表中后#t -

我收到从 cf1 开始并跳转到 cf10 然后 cf100 的“cf”值,cf 值范围从 cf1 到 cf900...我应该只接收从 c1 到 cf29 的值。

我的问题是 - 为什么此列中的值与任何其他正常值不同?为什么将 ROW_NUMBER() OVER (PARTITION BY....)) 计算传递给后续的查询?(如果这实际上是正在发生的事情)。最后,我如何将这些“cf”值视为正常的 VARCHAR 值,并且在我尝试按它们进行分组或排序时不让它们改变。

谢谢你的帮助!

更新

我接受了拉努的建议,

“似乎你最好只存储 int 值,并使用(PERSISTED)计算列来连接你的前缀和 ROW_NUMBER 值。”

并且我的“cf”值在排序后现在可以正确显示。感谢大家标记为已解决。

0 投票
0 回答
49 浏览

sql-server - 使用 SSIS 在 ETL 中进行 MAX 分区

我在使用的 SQL Server 中有一个查询MAX OVER Partition BY

我想使用 SSIS 在 ETL 中实现这一点。

为了实现,我尝试实现类似于我们如何实现行号的实现。

我添加了一个 SORT 转换并按 Variable8 和 RouterCallKeySequenceNumber 排序,然后我添加了一个脚本转换。

这是我拥有的数据 -

我需要的解决方案如下 -

但这不会返回所需的值。

如果您能提供任何帮助,我将不胜感激。

谢谢

0 投票
1 回答
586 浏览

pyspark - PySpark:PartitionBy在多次分区的列中留下相同的值

我需要 partitionBy 以便在timeandmatch_instatid列中获得不同的值,但它只在大约一半的时间内产生不同的值

您可以看到 last_action 列仅针对某些具有相同时间的行重复,但应该针对所有行。每个唯一时间值的 owner 和 last_action 应该只有一个值

partitionedBy 数据框的图片