精华内容
下载资源
问答
  • Chunk Size

    2009-04-12 02:33:58
    A chunk is one or more Oracle blocks. You can specify the chunk size for the LOB when creating the table that...

         A chunk is one or more Oracle blocks. You can specify the chunk size for the LOB when creating the table that contains the LOB. This corresponds to the data size used by Oracle Database when accessing or modifying the LOB value. Part of the chunk is used to store system-related information and the rest stores the LOB value. The API you are using has a function that returns the amount of space used in the LOB chunk to store the LOB value. In PL/SQL use DBMS_LOB.GETCHUNKSIZE. In OCI, use OCILobGetChunkSize(). For SECUREFILE LOBs the usable data area of the tablespace block size is returned.

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13750068/viewspace-588710/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/13750068/viewspace-588710/

    展开全文
  • pandas使用chunksize分块处理大型csv文件

    万次阅读 多人点赞 2019-03-15 23:58:40
    如果直接使用pandas的read_csv()方法去读取这个csv文件,那服务器的内存是会吃不消的,所以就非常有必要使用chunksize去分块处理。现在就开始讲chunksize的一些使用。 ** 1.本次任务的目标 ** 红框内是时间戳,需要...

    最近接手一个任务,从一个有40亿行数据的csv文件中抽取出满足条件的某些行的数据,40亿行。。。如果直接使用pandas的read_csv()方法去读取这个csv文件,那服务器的内存是会吃不消的,所以就非常有必要使用chunksize去分块处理。现在就开始讲chunksize的一些使用。
    **

    1.本次任务的目标

    **
    在这里插入图片描述

    红框内是时间戳,需要使用pd.to_datetime()函数去将时间戳转换为时间格式,代码如下:

    pd.to_datetime(chunk['time_stamp'],unit='s',origin=pd.Timestamp('2018-07-01'))
    

    单位是秒(s),起始时间为2018-07-01,我们的目标就是抽出2018-07-01这天的数据。

    2.分块处理

    想使用分块处理,只需在read_csv()方法中加入chunksize=100000(这里假设每一块有100000行),代码如下:

    df=pd.read_csv('data.csv',header=None,chunksize=100000)
    

    然后使用for循环去每块每块地去处理(chunk的type是DataFrame):

    for chunk in df:
    	print(chunk)
    

    现在我需要把时间戳的那一列改个名,这样方便下面的计算(默认列名是2,要改成time_stamp),下面的代码都是在上面那个for循环里面的:

    chunk.rename(columns={2:'time_stamp'},inplace=True)
    

    然后将每个chunk里面的时间戳变换成时间格式:

    chunk['time_stamp']=pd.to_datetime(chunk['time_stamp'],unit='s',origin=pd.Timestamp('2018-07-01'))
    

    chunk[‘time_stamp’]的意思是:该chunk块里的名为time_stamp的列

    先打开要存放的文件和定义一个字符串:

    filename=open('data1.txt','a')
    mylist=''
    

    然后我需要每行地去验证,看时间是否是2018-07-01这天的。就又要用到for循环:

    for i in range(len(chunk)):  #len(chunk)可得到chunk的行数
    	k=chunk.iloc[i]['time_stamp']   #得到第i行的第time_stamp列的值,这里必须使用iloc,不能用loc,不然会报错
    	if k < pd.datetime(2018,7,2):  #因为是从2018-07-01开始计算时间,所以要得到2018-07-01的数据,只需时间小于2018-07-02
    		for m in chunk.columns.values:  #chunk.columns.values得到列名		
    			if m=='time_stamp':  #这个if是为了将时间格式转换为时间戳,就是还原回之前csv文件的数据格式
    				sjcha=chunk.iloc[i][m]-pd.datetime(2018,7,1)  #计算出两个日期之间的差
    				sjchuo=sjcha.days*86400 + sjcha.seconds    #days和seconds都是属性
    				mylist=mylist+str(sjchuo)   #将每行的数据都装进字符串
    			else:	
    				mylist=mylist+str(chunk.iloc[i][m])
    			if m!=10:    #10是最后一列的默认列名,这个if是除了最后一个数据,其他数据之间都要加上逗号
    				mylist=mylist+','
    		mylist=mylist+'\n'   #在每行数据末尾加上换行符
    

    最后,只需将得到的字符串写进文件:

    filename.write(mylist)
    filename.close()
    
    展开全文
  • chunks = pd.read_csv(path, chunksize=50) for chunk_i in chunks: print(chunk_i.head()) break 按时间戳筛选数据 import pandas as pd datapath = r".csv" chunks = pd.read_csv(path, chunksize=500000) i = ...

    观察数据

    import pandas as pd
    path = r""
    chunks = pd.read_csv(path, chunksize=50)
    for chunk_i in chunks:
        print(chunk_i.head())
        break
    

    按时间戳筛选数据

    import pandas as pd
    datapath = r".csv"
    chunks = pd.read_csv(path, chunksize=500000)
    i = 1
    for chunk_i in chunks:
        chunk_i.columns = ['uid','itemid','catid','behavior','timestamp']
        chunk_i['date'] = pd.to_datetime(chunk_i['timestamp'],unit='s').dt.date
        chunk_i['year'] = pd.to_datetime(chunk_i['timestamp'], unit='s').dt.year
        chunk_i['month'] = pd.to_datetime(chunk_i['timestamp'], unit='s').dt.month
        chunk_i['hour'] = pd.to_datetime(chunk_i['timestamp'], unit='s').dt.hour
        chunk_i = chunk_i[chunk_i['year'] == 2017]
        chunk_i.to_csv(r'PATH',mode='a', encoding='utf-8', header=False,index=False)
        print("已经完成第{}个chunk".format(str(i)))
        i += 1
        if i > 40:
            break
    
    展开全文
  • mongodb如何修改chunksize? 1、网上说在condfig库db.settings.find()查看chunksize的默认值,但我的config库没有这个collection就,如何更改chunksize 2、当最多 Chunks 的 shard 节点和拥有最少Chunks 的 shard ...
  • 1.指定chunksize分块读取文件 read_csv 和 read_table 有一个 chunksize 参数,用以指定一个块大小(每次读取多少行),返回一个可迭代的 TextFileReader 对象。 table=pd.read_table(path+'kuaishou.txt',sep='\t',...

    原理就是不一次性把文件数据读入内存中,而是分多次

    1.指定chunksize分块读取文件

    read_csvread_table 有一个 chunksize 参数,用以指定一个块大小(每次读取多少行),返回一个可迭代的 TextFileReader 对象。

    table=pd.read_table(path+'kuaishou.txt',sep='\t',chunksize=1000000)
    for df in table:
        对df处理
        #如df.drop(columns=['page','video_id'],axis=1,inplace=True)
        #print(type(df),df.shape)打印看一下信息
    

    我这里又对文件进行了划分,分成若干个子文件分别处理(没错,to_csv也同样有chunksize参数)

    2.指定iterator=True

    iterator=True同样返回的是TextFileReader对象

    reader = pd.read_table('tmp.sv', sep='\t', iterator=True)
    df=reader.get_chunk(10000)
    #通过get_chunk(size),返回一个size行的块
    #接着同样可以对df处理
    

    example:

     # 数据读取,因数据量比较大,采用分批加载
        if os.path.exists(file_path):
            data = pd.read_csv(file_path, sep=',', engine='python', iterator=True)  # iterator=True 返回一个TextFileReader对象
            chunk_size = 1000000
            chunks = []
            loop = True
            while loop:
                try:
                    chunk = data.get_chunk(chunk_size)      # 通过get_chunk返回一个size条记录。也可以在read_csv的时候不指定iterator=True,指定chunksize=size
                    chunks.append(chunk)
                    # print('chunks: %d' % len(chunks))
                except StopIteration:
                    loop = False
                    print('Iteration is stopped.')
            print('Start concat...')
            df = pd.concat(chunks, ignore_index=True)
            print('file %s have %d data' % (filename, df.shape[0]))
            return df
        else:
            print("Don't have this file!")
            return None
    

    https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#io-read-csv-table

    展开全文
  • 利用pandas的chunksize分块处理大型csv文件 当读取超大的csv文件时,可能一次性不能全部放入内存中,从而无法加载,所以需要分块处理。 在read_csv中有个参数chunksize,通过指定一个chunksize分块大小来读取文件,...
  • pandas 使用chunkSize 读取大文件 import pandas as pd import numpy as np import chardet #检测文件编码 with open(r'D:\test.txt', 'rb') as fo:  encode= chardet.detect(fo.readline())['encoding'] print...
  • pandas读取大文件(chunksize)并通过sqlalchemy写入MySQL数据库 在pandas中读取表类文件的时候有一个参数chunksize,只要指定了这个参数的数值,那么得到的结果就不是一个DataFrame对象,而是一个TextFileReader...
  • migrate的实现使用了spring batch,通过分页的reader读数据,分页大小为500,每一个step的chunk size设置为了500,定义大致如下: .listener(new BPStepListener(tenant)) .transactionManager(new DataSourc...
  • 选择小的ChunkSize –优点 1.数据均衡时迁移速度更快 2.数据分布更均匀 –缺点 1.数据均衡会更频繁 2.块之间的数据分裂更频繁 备注:当一个块的数据超过块大小的50%时,块就开始分裂 3.在路由...
  • pandas chunksize

    千次阅读 2018-01-08 15:52:13
    chunk的type是DataFrame pd.concat在此处接受的事一个list(chunks[])
  • 当要处理一个较大文件时,一次性加载到内存可能导致内存溢出,pandas提供了一种以迭代器的方式读取文件,我们可以手动设置每个批次要读取的数据条数chunkSize。 import pandas as pd import chardet # 检测文件...
  • Python Matplotlib excepetion: Exceeded cell block limit (set 'agg.path.chunksize' rcparam)   matplotlib.rcParams['agg.path.chunksize'] = 0 matplotlib.rcParams.update( matplotlib.rc_params() )
  • 1 chunkers=pd.read_csv('dd.csv',chunksize=10000) 2 3 tot=pd.Series([]) 4 5 for piece in chunkers: 6 7 tot=tot.add(piece['dfcol'].value_counts(),fill_value=0)#迭代计数 8 9 tot=tot.order(asc...
  • 最近一项工作需要读取...想到用pandas.read_sql_query()里有一个chunksize可以分批返回chunksize个数据,于是用pandas试了下,代码如下: import pandas as pd from sqlalchemy import create_engine impor...
  • chunksize默认的大小是64M,用mongos连接到config数据库,通过查看config.settings可以看到这个值: 例如: mongos> use config mongos> db.sett...
  • Linux RAID level and chunk size 优化 本文转载: http://louwrentius.com/blog/2010/05/linux-raid-level-and-chunk-size-the-benchmarks/   Linux RAID level and chunk size: the benchmarks May 23, 2010...
  • Linux RAID level and chunk size 优化 本文转载: http://louwrentius.com/blog/2010/05/linux-raid-level-and-c...
  • matplotlib.rcParams['agg.path.chunksize'] = 10000 matplotlib.rcParams.update(matplotlib.rc_params()) 大概率是本身数据里面存在问题,比如我经常碰到的,整个数据中有个别字符串类型的,与其他的double类型...
  • svn/vcc/default': Could not read chunk size: connection timed out (http://10.68.183.6) 但是再次运行时,就顺利的把文件给check out 下来了,没有出现上面的问题。 请帮忙看一下,为什么会出现这种...
  • Mongodb GridFS 修改chunk size

    千次阅读 2018-08-22 09:13:02
    当然,你为了统一application的“文件系统”存储方式,也可以将这些小文件保存在GridFS中,性能也不会差的太多,为了提升性能,对这些小文件,可以在存储时手动设置它的chunkSize,避免文件被切分成多个chunks来提高...
  • 今天在项目开发中出现Could not read chunk size错误,导致项目组内所有人的SVN客户端都无法更新。因为是上班时间,所以简要记录下解决方法,以备后用。 1.用Svn log去查询所有的工作日志,然后选择一个近期...
  • Pandas.ChunkSize()用法

    千次阅读 2019-07-23 21:53:18
    据图:将Excel表格中的数据,每5行单独显示一次
  • 根据我们在 0x14 节提出的公式,进一步简化 原本分配:4 + x (size of chunk) 实际改为:4 + x (size of chunk) 通过观察堆的结构,我们发现,size of chunk 必须是 16 的整数倍,才能满足 16 字节对齐的要求,这样...
  • 添加链接描述 import pandas as pd import asyncio from collections import defaultdict ...async def dealone(chunk,sas): path='/data/chaifen/testphone_%d.txt'%sas chunk.to_csv(path,index=False) retu
  • 为什么80%的码农都做不了架构师?>>> ...
  • 可以通过read_csv方法的chunksize参数,设定读取的行数,返回一个固定行数的迭代器,每次读取只消耗相应行数对应的dataframe的内存,从而可以有效的解决内存消耗过多的问题,参考如下demo。 import pandas as ...
  • 这几天我已经对这个问题搞的头都大了,我以下的说明的问题解决办法是个人经过一天找资料总结出来的TortoiseSVN...svn/vcc/default': Could not read chunk size: 远程主机强迫关闭 个人觉得这个问题具体的原因应该是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,866
精华内容 27,146
关键字:

chunksize