小编rav*_*nur的帖子

NoSQL具有分析功能

我正在寻找NoSQL支持分析功能(AF简称)的任何系统(最好是开源),如Oracle/SQL Server/Postgres.我没有找到任何内置函数.我已经阅读了一些内容,Hive但它没有AF(windows,first_last值,ntiles,lag,lead等)的实际特征,只是直方图和ngrams.还有一些NoSQL系统(Redis例如)支持map/reduce,但我不确定是否AF可以用它替换它.

我想进行性能比较,选择Postgres或NoSQL系统.

简而言之:

  1. 正在搜索NoSQL系统AF
  2. 我可以依靠map/reduce来替换AF吗?它快速,可靠,易于使用.

PS.我试图让我的问题更有建设性.

mapreduce analytic-functions nosql

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

打破折叠的简单方法

我需要打破foldl.下面是一个虚拟示例,当我计算列表中的值总和并满足太大的值(即10)时,如何从折叠中断

   L = [1,2,3,4,10,5,6,7],

   Res = 
      try
         lists:foldl(
            fun(I, Value) ->
               if (I < 10) ->
                  Value + I;
               true ->
                  throw({too_big_value, Value})
               end
            end,
            0, L)
      catch
         throw:{too_big_value, Value} -> Value
      end,

   Res.
Run Code Online (Sandbox Code Playgroud)

我知道这个例子是人为的,但是有没有很好的方法来打破折叠(我知道折叠总是扫描整个结构)?

请注意,即使我从折叠中断,我也需要检索正确的数据.在这种情况下,我应该从前一次迭代中获取数据(就像我在我的例子中所做的那样).

erlang fold

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

Erlang:递归与列表

我是Erlang的新手,我试图理解为什么递归比使用list更快(甚至可以得到错误"无法在堆中分配内存").

我创建了两个函数来查找值的素数(非常简单):

  1. 使用递归:

    find_factor_rec(List, Max, _, NextValue)
        when NextValue > Max ->
            List;
    
    find_factor_rec(List, Max, Value, NextValue)->
        if (Value rem NextValue =:= 0) ->
            find_factor_rec([NextValue|List], Max, Value, NextValue + 1);
        true ->
            find_factor_rec(List, Max, Value, NextValue + 1)
        end
    .
    
    find_factors(Val)->
        find_factor_rec([], round(math:sqrt(Val)) + 1, Val, 2).
    
    Run Code Online (Sandbox Code Playgroud)
  2. 名单

    find_factors1(Val) ->
        [X || X <- lists:seq(2, round(math:sqrt(Val)) + 1), Val rem X =:= 0].
    
    Run Code Online (Sandbox Code Playgroud)

虽然我传递的是小值 - 两者都在同一时间.当我传递像403851455234578这样的巨大值时,第二个函数变得越来越慢,甚至抛出错误.

有人可以解释为什么第一个功能比列表更好?有没有更好的方法来重写功能?第一个上市是否有任何名称约定?(函数加上他们的"子递归函数")

谢谢.

erlang recursion list

4
推荐指数
1
解决办法
484
查看次数

标签 统计

erlang ×2

analytic-functions ×1

fold ×1

list ×1

mapreduce ×1

nosql ×1

recursion ×1