标签: data-processing

用因子替换范围内的数字

如上.数据帧是一系列整数,它们是年龄.我试图将它们转换为序数变量.代码如下.

df <- read.table("http://dl.dropbox.com/u/822467/df.csv", header = TRUE, sep = ",")

df[(df >= 0)  & (df <= 14)] <- "Age1"
df[(df >= 15) & (df <= 44)] <- "Age2"
df[(df >= 45) & (df <= 64)] <- "Age3"
df[(df > 64)] <- "Age4"

table(df)
Run Code Online (Sandbox Code Playgroud)

我们可以看到这不起作用.任何人都可以帮我提出一个更好的方法吗?

r data-processing r-factor

5
推荐指数
1
解决办法
5955
查看次数

从文件中读取特定的,模式匹配的行

我有一个制表符分隔的文件,包含多个表格,每个表格都以标题为首,例如"Azuay \n","Bolivar \n","Cotopaxi \n"等,每个表格用两个换行符分隔.在R中,我如何读取该文件并仅选择对应于例如"Bolivar"的表(即指定的行),同时忽略对应于"Cotopaxi"的下表和上面对应于"Azuay"的表.

NB.我宁愿不在R外面修改表格.

数据看起来像这样.该文件以制表符分隔.

 Azuay
 region begin       stop
 1A     2017761     148749885
 1A     148863885   150111299
 1A     150329391   150346152
 1A     150432847   247191037


 Bolivar
 region begin           stop 
 2A     2785            242068364
 2A     736640          198339289


 Cotopaxi
 region begin           stop 
 4A     2282            9951846
 4A     11672561        11906166
Run Code Online (Sandbox Code Playgroud)

r data-processing

5
推荐指数
1
解决办法
1931
查看次数

并行处理大量数据

我是一个具有非常好的RDBMS经验的python开发人员.我需要处理相当大量的数据(大约500GB).数据位于s3存储桶中的大约1200个csv文件中.我用Python编写了一个脚本,可以在服务器上运行它.但是,这太慢了.根据当前的速度和数据量,大约需要50天才能完成所有文件(当然,截止日期之前还有很长时间).

注意:处理是你的基本ETL类型的东西 - 没什么可怕的幻想.我可以轻松地将它泵入PostgreSQL中的临时模式,然后在其上运行脚本.但是,再次,从我最初的测试,这将是缓慢的方式.

注意:一个全新的PostgreSQL 9.1数据库将是它的最终目的地.

所以,我正在考虑尝试启动一堆EC2实例来尝试分批运行它们(并行).但是,我之前从未做过这样的事情所以我一直在寻找想法等等.

再说一遍,我是一个python开发人员,所以看起来像Fabric + boto可能很有希望.我不时使用boto,但从未体验过Fabric.

我从阅读/研究中了解到这对Hadoop来说可能是一个很好的工作,但我不知道它并且不能雇用它完成,时间线不允许学习曲线或雇用某人.我也不应该,这是一次性交易.所以,我不需要构建一个非常优雅的解决方案.我只需要它可以工作,并能够在年底之前完成所有数据.

另外,我知道这不是一个简单的stackoverflow问题(类似"如何在python中反转列表").但是,我所希望的是有人读这篇文章并且"说,我做类似的东西并使用XYZ ......它很棒!"

我想我所问的是有没有人知道我可以用来完成这项任务的任何事情(鉴于我是一名Python开发人员,我不知道Hadoop或Java - 并且有一个紧迫的时间表,可以防止我学习像Hadoop这样的新技术或学习一门新语言

谢谢阅读.我期待着任何建议.

python data-processing boto fabric

5
推荐指数
1
解决办法
1305
查看次数

处理大量元素时,Hibernate内存不足异常

我正在尝试处理重量级元素(图像)的集合.收集的大小在8000-50000个条目之间变化.但由于某些原因,在处理1800-1900条目之后,我的程序属于java.lang.OutOfMemoryError:Java堆空间.

在我的理解中每当我调用session.getTransaction().commit()程序应该释放堆内存,但看起来它永远不会发生.我做错了什么?这是代码:

private static void loadImages( LoadStrategy loadStrategy ) throws IOException {
    log.info( "Loading images for: " + loadStrategy.getPageType() );

    Session session = sessionFactory.openSession();
    session.setFlushMode( FlushMode.COMMIT );
    Query query = session.createQuery( "from PageRaw where pageType = :pageType and pageStatus = :pageStatus and sessionId = 1" );
    query.setString( "pageStatus", PageStatus.SUCCESS.name() );
    query.setString( "pageType", loadStrategy.getPageType().name() );
    query.setMaxResults( 50 );

    List<PageRaw> pages;
    int resultNum = 0;

    do {

        session.getTransaction().begin();

        log.info( "Get pages statring form " + resultNum + " position" );
        query.setFirstResult( resultNum …
Run Code Online (Sandbox Code Playgroud)

java performance hibernate out-of-memory data-processing

5
推荐指数
1
解决办法
6970
查看次数

当我使用生成器表达式插入数据并从网格上的常规网格> 2000次插入迭代器时,我收到一个MemError

这是我在stackoverflow的第一个问题,因为我开始使用Python3编写脚本.

应用

我制作了一个Python3脚本,用于在LS-Dyna中为有限元模拟编写可移动热源的负载定义.作为源,我具有离散化的3D发热率密度(W/cm ^ 3)场,定义有限元网格的坐标和热场中心随时间的位置.作为输出,我得到一个依赖于时间的加热功率,在每个有限元的元素编号之后排序.这已经用于合理的尺寸(200000个有限元,热场的3000个位置,热场中的400000个数据点).

问题

对于较大的有限元网格(4 000 000个元素),我的内存不足(60GB RAM,python3 64Bit).为了进一步说明这个问题,我准备了一个独立运行的最小例子.它生成一些人工测试数据,我使用它的有限元网格(实际上它不是常规网格)和热应用的新位置的迭代器.

import numpy as np
import math
from scipy.interpolate import RegularGridInterpolator
def main():
    dataCoordinateAxes,dataArray = makeTestData()
    meshInformationArray = makeSampleMesh()
    coordinates = makeSampleCoordinates()
    interpolateOnMesh(dataCoordinateAxes,dataArray,meshInformationArray,coordinates)

def makeTestData():
    x = np.linspace(-0.02,0.02,300)
    y = np.linspace(-0.02,0.02,300)
    z = np.linspace(-0.005,0.005,4)
    data = f(*np.meshgrid(x,y,z,indexing='ij',sparse=True))
    return (x,y,z),data

def f(x,y,z):
    scaling = 1E18
    sigmaXY = 0.01
    muXY = 0
    sigmaZ = 0.5
    muZ = 0.005
    return weight(x,1E-4,muXY,sigmaXY)*weight(y,1E-4,muXY,sigmaXY)*weight(z,0.1,muZ,sigmaZ)*scaling

def weight(x,dx,mu,sigma):
    result = np.multiply(np.divide(np.exp(np.divide(np.square(np.subtract(x,mu)),(-2*sigma**2))),math.sqrt(2*math.pi*sigma**2.)),dx)
    return result

def makeSampleMesh():
    meshInformation = [] …
Run Code Online (Sandbox Code Playgroud)

python iterator numpy data-processing python-3.x

5
推荐指数
1
解决办法
57
查看次数

您将如何处理此数据处理任务?

我有一个包含2.5亿个网站URL的文件,每个URL都有IP地址,页面标题,国家名称,服务器横幅(例如"Apache"),响应时间(以毫秒为单位),图像数量等等.目前,这些记录是25GB的平面文件.

我有兴趣从这个文件生成各种统计数据,例如:

  • 每个国家/地区代表的IP地址数
  • 每个国家的平均响应时间
  • 图像数量v响应时间

等等

我的问题是,你将如何实现这种类型和规模的处理,以及你使用的平台和工具(在合理的时间内)?

我对所有建议都持开放态度,从Windows上的MS SQL到Solaris上的Ruby,所有建议:-) DRY的奖励积分(不要重复自己),我不希望每次不同的切割时都不写新程序需要.

任何关于什么有效以及应该避免什么的评论都将非常感激.

database data-processing

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

CPU绑定应用程序与IO绑定

对于使用大量数据的"数字运算"风格的应用程序(读取:"数百MB,但不是GB",即它可以很好地适应操作系统旁边的内存),将所有数据读入内存是否有意义首先在开始处理之前避免在读取大型相关数据集时可能使程序IO绑定,而是从RAM中加载它们?

这个答案在使用不同的数据支持之间是否有所改变 也就是说,无论你使用的是XML文件,平面文件,完整的DBMS等,答案都是一样的吗?

language-agnostic data-processing

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

处理非常大(超过 30GB)文本文件并显示进度的最佳方法是什么

[新手问题]

你好,

我正在处理一个超过 30GB 的巨大文本文件。

我必须对每一行进行一些处理,然后以 JSON 格式将其写入数据库。当我读取文件并使用“for”循环时,我的计算机在处理数据大约 10% 后崩溃并显示蓝屏。

我目前正在使用这个:

f = open(file_path,'r')
for one_line in f.readlines():
    do_some_processing(one_line)
f.close()
Run Code Online (Sandbox Code Playgroud)

另外,我如何显示到目前为止已处理多少数据的总体进度?

非常感谢大家。

python data-processing

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

基于Java的简单工作流管理器/数据工作流,具有启动ext的能力.应用程序,调用Web服务等

首先,如果在stackoverflow上已经存在类似我的问题,抱歉,但我还没有找到它.实际上我不知道我可以使用什么标签来搜索我需要的解决方案.

基本上,我需要一个工具/软件,可以在整个过程中使用多个工具/操作来管理数据(对象)流.当然,现有的BPM /工作流平台工具之一可能会这样做,但它们似乎对我的要求来说过于复杂.

我有一个用JPA/Hibernate构建的"静态"数据模型.然后我需要更改该静态模型,以便在其上使用不同的处理函数.该函数可以是一些java类,Web服务或外部应用程序(支持批处理模式).之后,我需要捕获这些函数的输出并进行一些可视化,绘制一些图表等.我可以假设所有这些处理函数都可以访问静态模型,并且可以将其更改为特定的模型,因此不需要将输入传递给他们.另一方面,它们的输出应该由主"工作流程管理器"捕获.

还有一件事,整个过程应该在没有任何用户交互的情况下自动运行(可能将来会改变,但现在看起来和现在).在流程开始之前,管理员应该定义使用哪个"处理功能",就是这样.另一件事......最好的情况是,如果整个过程在数据库状态发生变化时被触发,但这并不重要,我可以通过调用Web服务来启动它.

问题是:我应该使用现有的BPM /工作流工具之一,如jBPM或Activiti,自己编写一个简单的"工作流管理器",或使用比jBPM/Activiti(有没有?)简单得多的现有工具. .当然我更喜欢最简单的方法......

非常感谢任何反馈.

java workflow dataflow data-processing

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

我应该如何使用 Pandas 处理时间序列数据中的重复时间?

作为较大数据集的一部分,我从 API 调用中返回了以下内容:

{'时间': datetime.datetime(2017, 5, 21, 18, 18, 1, tzinfo=tzutc()), '价格': '0.052600'}

{'时间': datetime.datetime(2017, 5, 21, 18, 18, 1, tzinfo=tzutc()), '价格': '0.052500'}

理想情况下,我会使用时间戳作为 Pandas 数据框的索引,但是这似乎失败了,因为在转换为 JSON 时有重复:

df = df.set_index(pd.to_datetime(df['Timestamp']))
print(new_df.to_json(orient='index'))
Run Code Online (Sandbox Code Playgroud)

ValueError:对于 orient='index',DataFrame 索引必须是唯一的。

有关处理这种情况的最佳方法的任何指导?扔掉一个数据点?时间并没有比秒更细粒度,并且在那一秒内显然有价格变化。

python time-series data-processing pandas

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