小编NG *_*lgo的帖子

尝试python多处理的Windows上的RuntimeError

我正在尝试在Windows机器上使用线程和多处理的第一个正式的python程序.我无法启动进程,python提供以下消息.问题是,我没有在模块中启动我的线程.线程在类中的单独模块中处理.

编辑:顺便说一句,这个代码在ubuntu上正常运行.不是在窗户上

RuntimeError: 
            Attempt to start a new process before the current process
            has finished its bootstrapping phase.
            This probably means that you are on Windows and you have
            forgotten to use the proper idiom in the main module:
                if __name__ == '__main__':
                    freeze_support()
                    ...
            The "freeze_support()" line can be omitted if the program
            is not going to be frozen to produce a Windows executable.
Run Code Online (Sandbox Code Playgroud)

我的原始代码很长,但我能够在删节版本的代码中重现错误.它分为两个文件,第一个是主模块,除了导入处理进程/线程和调用方法的模块之外,它只做很少的事情.第二个模块是代码的核心所在.


testMain.py:

import parallelTestModule

extractor = parallelTestModule.ParallelExtractor()
extractor.runInParallel(numProcesses=2, numThreads=4)
Run Code Online (Sandbox Code Playgroud)

parallelTestModule.py:

import multiprocessing …
Run Code Online (Sandbox Code Playgroud)

python windows multiprocessing

79
推荐指数
5
解决办法
5万
查看次数

坐在Cassandra上的数据分析和挖掘

我们有很多来自Cassandra存储的各种网站的用户互动数据,例如Cookie,网页访问,广告浏览,点击广告等等.我们想要进行报道.我们当前的Cassandra架构支持基本报告和查询.但是,我们还希望构建大型查询,这些查询通常涉及大型列族(包含数百万行)上的连接.

什么方法最适合这个?一种可能性是将数据提取到关系数据库(如mySQL)并在那里进行数据挖掘.替代可能是尝试使用hadoop与蜂巢或猪为此目的运行map reduce查询?我必须承认我对后者没有经验.

任何人都有一个与另一个的性能差异的经验?您是否会在实时Cassandra生产实例或备份副本上运行map reduce查询以防止查询负载影响写入性能?

analytics hadoop mapreduce cassandra

13
推荐指数
2
解决办法
8055
查看次数

为什么我不能强迫Oracle 11g为单个SQL查询消耗更多的CPU

我有一些在巨大的桌子上运行的大量查询.这些查询似乎是CPU瓶颈,并运行了几个小时.据我所知,Oracle有很多新功能,11g,第2版内部并列化查询的执行.但是无论我在查询中添加什么样的提示,我似乎都不能在数据库框上使用多个CPU.我有一个非常值得尊敬的Solaris机器,有8个CPU,但是每次运行这个查询时,我最终只是将一个CPU推到100%,然后在那里坐了几个小时.

我尝试过的提示是:

SELECT /*+ PARALLEL */ ...
SELECT /*+ PARALLEL(5) */ ...
SELECT /*+ PARALLEL(10) */ ...
Run Code Online (Sandbox Code Playgroud)

在查看盒子上的整体CPU消耗时,这些似乎都不起作用.似乎总是将一个CPU固定在100%.不幸的是,即使解释计划似乎也需要永远运行.我会尝试用不同的提示获得不同的解释计划,看看是否有帮助.有些查询是否可能是不可并行的,即使它们的运行时间是在几小时内?!!?此查询中的主表有3.35亿行.

SQL查询文本:

http://pastie.org/8634380

系统参数:

http://pastie.org/8634383

编辑:

详细的解释计划 - 没有并行性:

http://pastebin.com/HkZgbPpf

优化器相关的系统参数:

http://pastie.org/8639841

进一步编辑: 我们已经联系Oracle了解为什么EXPLAIN PLAN需要超过2个小时.我们正试图运行各种解释计划.

sql oracle parallel-processing

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

在 hiveql 中将列转换为行 (UNPIVOT)

我有一个结构如下的表:

column1, column2, column3, X1, X2, X3, X4
A1,      A2,      A3,      5,  6,  1,  4
Run Code Online (Sandbox Code Playgroud)

我想把它转换成

column1, column2, column3, Key, Value 
 A1,      A2,      A3,      X1,  5
 A1,      A2,      A3,      X2,  6 
 A1,      A2,      A3,      X3,  1
 A1,      A2,      A3,      X4   4
Run Code Online (Sandbox Code Playgroud)

我已经能够使用与“UNION ALL”缝合在一起的 4 个查询来完成此操作,但由于表很大并且每个选择都会转换为冗长的映射缩减,因此使用 UNION 会使查询花费的时间是理想情况下的 N 倍。其中 N 是要旋转的列数。

我尝试探索explode()预定义的UDTF,但我无法在这个示例中使用它。我尝试了类似以下的内容,但无法使语法正常工作。

select column1, column2, column3, explode(Map('X1':X1, 'X2':X2, ..))
Run Code Online (Sandbox Code Playgroud)

有人可以准确指出如何进行这项工作吗?我猜我可以推出自己的 UDTF,但我希望这是相当标准的东西?

编辑: stackoverflow 上 还有另一个问题,其中提出了类似的问题,但表述很复杂,在我看来,错误的答案当前被标记为正确的答案。我认为这个问题更简洁、更切题。

sql hadoop hive unpivot hiveql

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