标签: data-partitioning

python:生成整数分区

我需要生成给定整数的所有分区.
我发现Jerome Kelleher的这个算法对它来说是最有效的算法:

def accelAsc(n):
    a = [0 for i in range(n + 1)]
    k = 1
    a[0] = 0
    y = n - 1
    while k != 0:
        x = a[k - 1] + 1
        k -= 1
        while 2*x <= y:
            a[k] = x
            y -= x
            k += 1
        l = k + 1
        while x <= y:
            a[k] = x
            a[l] = y
            yield a[:k + 2]
            x += 1
            y -= 1
        a[k] …
Run Code Online (Sandbox Code Playgroud)

python performance combinatorics data-partitioning

8
推荐指数
2
解决办法
2915
查看次数

三维聚类算法

问题陈述: 我有以下问题:

3D空间中有超过10亿个点.目标是找到在给定距离R内具有最大邻居数的前N个点.另一个条件是那些前N个点中任意两个点之间的距离必须大于R.这些点的分布不均匀.这个空间的某些区域包含很多点是很常见的.

目标: 找到一种可以很好地扩展到许多处理器并且内存需求很小的算法.

思想: 由于分布不均匀,正常的空间分解不足以解决这类问题.不均匀的空间分解,均匀分割​​点数可能有助于我们解决问题.我真的很感激,如果有人可以解释如何解决这个问题.

algorithm 3d cluster-analysis spatial data-partitioning

7
推荐指数
1
解决办法
7959
查看次数

了解中位数选择算法?

我目前在业余时间学习算法,但在学习第3章select()算法时遇到以下问题.

我知道如果我使用从A到n的数组,我可以使用select()算法来查找中位数(第n/2个最小数字).

1)但这是我正在努力理解的一点.A = [3,7,5,1,4,2,6,2].假设那是数组.每次调用Partition()后数组的内容是什么,以及每次递归调用Select()时的参数.

有人可以解释他们是如何解决这个问题的吗?

下面是2个算法的伪代码.

Select(A, p, r, k) {
    /* return k-th smallest number in A[p..r] */
    if (p==r) return A[p] /* base case */
    q := Partition(A,p,r)
    len := q – p + 1
    if (k == len) return A[q]
    else if (k<len) return Select(A,p,q-1,k)
    else return Select(A,q+1,r,k-len)
}
Run Code Online (Sandbox Code Playgroud)

第二个代码是

Partition(A, p, r) { /* partition A[p..r] */
    x := A[r] /* pivot */
    i := p-1
    for j := p to r-1 {
        if (A[j] …
Run Code Online (Sandbox Code Playgroud)

algorithm recursion selection data-partitioning

7
推荐指数
1
解决办法
7448
查看次数

Lomuto的分区,稳定与否?

我试图在网络和我的算法书中搜索Lomuto 的QSort 分区特定解决方案是否稳定(我知道 Hoare 的版本不稳定),但我没有找到准确的答案。
所以我试着做同样的例子,它看起来很稳定。但是我没有演示。你可以帮帮我吗?如果它不稳定,你能给我一个输入的例子吗?

sorting algorithm quicksort data-partitioning

6
推荐指数
1
解决办法
3152
查看次数

将所有分区迭代为k个组?

说我有一个列表L。如何获得K组所有分区上的迭代器?

示例:L = [2,3,5,7,11,13],K = 3

3组的所有可能分区的列表:

[ [ 2 ], [ 3, 5], [ 7,11,13] ]
[ [ 2,3,5 ], [ 7, 11], [ 13] ]
[ [ 3, 11 ], [ 5, 7], [ 2, 13] ]
[ [ 3 ], [ 11 ], [ 5, 7, 2, 13] ]
etc...
Run Code Online (Sandbox Code Playgroud)

===更新===

我正在研究一个似乎可行的解决方案,所以我只复制粘贴它即可

# -*- coding: utf-8 -*-

import itertools 

# return ( list1 - list0 )
def l1_sub_l0( l1, l0 ) :
    """Substract two lists"""
    #
    copy_l1 …
Run Code Online (Sandbox Code Playgroud)

python data-partitioning

6
推荐指数
1
解决办法
1842
查看次数

Azure Data Lake中的U-SQL输出

如果我不知道表中包含多少个不同的键值,是否可以根据列值自动将表拆分为多个文件?是否可以将键值放入文件名中?

azure data-partitioning output azure-data-lake u-sql

6
推荐指数
2
解决办法
3300
查看次数

使用jq如何将一个非常大的JSON文件拆分成多个文件,每个文件都有特定数量的对象?

我有一个大的JSON文件,我猜测有400万个对象.每个顶级都有几个嵌套在里面的级别.我想将它分成多个10000个顶级对象的文件(保留每个内部的结构).jq应该能够做到这一点吗?我不知道怎么做.

所以这样的数据:

[{
  "id": 1,
  "user": {
    "name": "Nichols Cockle",
    "email": "ncockle0@tmall.com",
    "address": {
      "city": "Turt",
      "state": "Th? Tr?n Yên Phú"
    }
  },
  "product": {
    "name": "Lychee - Canned",
    "code": "36987-1526"
  }
}, {
  "id": 2,
  "user": {
    "name": "Isacco Scrancher",
    "email": "iscrancher1@aol.com",
    "address": {
      "city": "Likwatang Timur",
      "state": "Biharamulo"
    }
  },
  "product": {
    "name": "Beer - Original Organic Lager",
    "code": "47993-200"
  }
}, {
  "id": 3,
  "user": {
    "name": "Elga Sikora",
    "email": "esikora2@statcounter.com",
    "address": {
      "city": "Wenheng",
      "state": "Piedra …
Run Code Online (Sandbox Code Playgroud)

json data-partitioning jq

6
推荐指数
2
解决办法
2802
查看次数

获得多个分区的领先价值

我有一个问题,我觉得可以使用滞后/铅+分区解决,但我无法绕过它.

邀请客户每两年参加一次研究项目(aprox.).为每个项目选择了许多客户.一些客户被选中用于多个研究项目.那些人收到了邀请.在某些情况下,不会发送邀请.如果客户未对邀请做出反应,则会发送第二个邀请(提醒).第3,第4也是可能的.

我需要找出一位客户是否曾邀请过以前的研究项目.(并且可选地,是哪个邀请).

数据集如下所示:

clientID | projectID | invitationID
  14     |    267    |     489
  14     |    267    |     325
  16     |    385    |     475
  17     |    546    |     NULL
  17     |    547    |     885
  17     |    548    |     901
  18     |    721    |     905
  18     |    834    |     906
  18     |    834    |     907
  19     |    856    |     908
  19     |    856    |     929
  19     |    857    |     931
  19     |    857    |     945
  19     |    858    |     NULL


Client …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server data-partitioning sql-server-2017

6
推荐指数
1
解决办法
61
查看次数

Spark中的分区和分桶有什么区别?

我尝试优化两个 spark 数据帧之间的连接查询,我们称它们为 df1、df2(在公共列“SaleId”上连接)。df1 非常小(5M),所以我在火花集群的节点之间广播它。df2 非常大(200M 行),因此我尝试通过“SaleId”对其进行存储分区/重新分区。

在 Spark 中,按列对数据进行分区和按列对数据进行分桶有什么区别?

例如:

划分:

df2 = df2.repartition(10, "SaleId")
Run Code Online (Sandbox Code Playgroud)

桶:

df2.write.format('parquet').bucketBy(10, 'SaleId').mode("overwrite").saveAsTable('bucketed_table'))
Run Code Online (Sandbox Code Playgroud)

在每一项技术之后,我都将 df2 与 df1 结合使用。

我无法弄清楚使用哪种技术是正确的。谢谢

python bucket data-partitioning apache-spark

6
推荐指数
1
解决办法
6352
查看次数

支持按分区键查询而无需更改接口的存储库

我正在开发一个IDocumentClient用于对 CosmosDB 执行查询的应用程序。我GenericRepository通过查询支持IdPredicate

将数据库从 SqlServer 更改为 CosmosDb 时,我遇到了麻烦,在 CosmosDb 中,我们有partition key. 而且我不知道如何通过partition key不更改接口partition key作为参数传递来实现支持查询的存储库。

public interface IRepository<T>
{
    //I can handle this one by adding value of partition key to id and split it by ":"
    Task<T> FindByIdAsync(string id);

    // I am stuck here!!!
    Task<T> FindByPredicateAsync(Expression<Func<T, bool>> predicate);
}
Run Code Online (Sandbox Code Playgroud)

我的实现

public class Repository<T> : IRepository<T>
{
    private readonly IDocumentClient _documentClient;

    private readonly string _databaseId;
    private readonly …
Run Code Online (Sandbox Code Playgroud)

c# repository data-partitioning .net-core azure-cosmosdb

6
推荐指数
1
解决办法
255
查看次数