精华内容
下载资源
问答
  • 上篇《Python海量数据处理之_单机优化》讲述了单机的处理大数据的解决方案。下面将讲述如何利用服务器集群处理大数据,这里使用的工具是Hadoop,内容太多,分为三部分介绍,本篇是第一部分集群搭建,后两部分分别是...

    1. 说明

     数据处理时,可能会遇到数千万以及上亿条数据的情况。如果一次性处理所有数据,就会遇到内存不够,计算时间太长等问题。上篇《Python海量数据处理之_单机优化》讲述了单机的处理大数据的解决方案。下面将讲述如何利用服务器集群处理大数据,这里使用的工具是Hadoop,内容太多,分为三部分介绍,本篇是第一部分集群搭建,后两部分分别是原理和python调用。

    2. Hadoop简介

     如果有多台用于数据计算的机器,可以使用Hadoop框架建立集群,统一分配布属。Hadoop是由Apache基金会所开发的分布式系统基础架构,最核心的设计是:HDFS和MapReduce。HDFS为数据提供了存储,MapReduce为数据提供了计算,其中Mapper指的就是拆分处理,Reducer指的就是将结果合并。和单机一样,核心也是拆分,处理,再合并。
     多台机器同时处理数据,相对更复杂,需要考虑:数据共享,同步,冲突,资源分析,计算顺序,以及主控宕机等等问题。

    3. Hadoop安装

     首先,需要配置起Hadoop环境,才能进行各种实验。Hadoop有三种安装方式:单机,伪分布式和分布式,前两种都是在单机上安装使用的。伪分布式即可以用单机实现,又可以理解分布式的原理,本文主要介绍伪分布式Hadoop的安装。

    1) 安装Java

     Hadoop是java语言实现的,所以需要先安装java和配置相关的环境变量,一般用apt-get安装后环境就被自动配置了。

    2) 创建hadoop用户

     不一定非要创建hadoop用户,因为考虑到有删除ssh密码等操作,为了机器安全性,这里创建了hadoop用户。

    $ sudo adduser hadoop
    $ su hadoop # 之后的操作都在hadoop用户下进行
    

    3) 安装配置ssh

     为了使本机能使用ssh登陆,需要安装ssh服务端,并关掉 PAM认证,并设用户密码为空

    $ sudo apt-get install -y openssh-server # 安装ssh服务
    $ sudo vim /etc/ssh/sshd_config # 将UsePAM设为no
    $ sudo /etc/init.d/ssh start # 启动ssh服务,如果安装时已自启动,则配置后用restart重启
    $ ssh localhost # 连接后用exit接出,此时用户目录下生成.ssh目录
    $ cd ~/.ssh # 以下几步是为了设置当前用户无密码登陆
    $ ssh-keygen -t rsa # 设置密码为空,即直接回车
    $ cat ./id_rsa.pub >> ./authorized_keys 
    

    4) 下载Hadoop

    http://www.apache.org/dyn/closer.cgi/hadoop/common/
     建议下载2.6或2.7的版本,不同版本配置文件不同,而2.7前后的版本教程较多,不用下源码,下载bin包即可。

    $ cd /home/hadoop/ # 安装在哪里都行,但需要注意在配置文件中指定目录
    $ tar xvzf  hadoop-2.7.5.tar.gz
    $ ln –s hadoop-2.7.5 hadoop # 方便以后更换版本
    $ vi ~/.bashrc 
    
    #加下以入内容(在/etc/profile中设置也行)。设置后,用source ./barshrc让它立即生效。
    
    export HADOOP_PREFIX="/home/hadoop/hadoop"  # 具体根据安装目录设置
    export YARN_CONF_DIR="/home/hadoop/hadoop"  
    export HADOOP_COMMON_LIB_NATIVE_DIR="$HADOOP_PREFIX/lib/native"  
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"  
    export PATH=$PATH:$HADOOP_PREFIX/bin
    

    5) 配置core-site.xml

    $  vi hadoop/etc/hadoop/core-site.xml
    
    在configure中加入如下内容(具体根据安装目录设置)
    <configuration>
            <property>
                 <name>hadoop.tmp.dir</name>
                 <value>file:/home/hadoop/hadoop/tmp</value>
                 <description>Abase for other temporary directories.</description>
            </property>
            <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://localhost:9000</value>
            </property>
    </configuration>
    

    6) 配置hdfs-site.xml

    $  vi hadoop/etc/hadoop/hdfs-site.xml
    在configure中加入如下内容
    
    <configuration>
            <property>
                 <name>dfs.replication</name>
                 <value>1</value>
            </property>
            <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/home/hadoop/hadoop/tmp/dfs/name</value>
            </property>
            <property>
                 <name>dfs.datanode.data.dir</name>
                 <value>file:/home/hadoop/hadoop/tmp/dfs/data</value>
            </property>
    </configuration>
    

    7) 配置mapered-site.xml

    $ cp ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
    $ vi ./etc/hadoop/mapred-site.xml
    在configure中加入如下内容
    
    <configuration>
            <property>
                 <name>mapreduce.framework.name</name>
                 <value>yarn</value>
            </property>
    </configuration>
    

    8) 配置yarn-site.xml

    $ vi ./etc/hadoop/yarn-site.xml
    
    <configuration>
            <property>
                 <name>yarn.nodemanager.aux-services</name>
                 <value>mapreduce_shuffle</value>
                </property>
    </configuration>
    

    9) 格式化namenode

    $ hadoop namenode -format
    

     如果显示Exiting with status 0,则创建成功

    10) 在etc/hadoop/*-env.sh中设置JAVA_HOME

    (根据自己机器的配置)

    export JAVA_HOME=/usr/lib/jvm/java-1.9.0-openjdk-amd64/
    

    11) 启动hdfs

    $ hadoop/sbin/start-dfs.sh
    

    12) 看当前服务启动状态

    $ jps
    

     成功启动后还可以通过访问http://localhost:50070,来查看状态。

    13) 启动所有服务

    ./sbin/start-all.sh
    

     成功启动后还可以通过访问http://localhost:8088/cluster,来查看状态。

    14) 问题及解决

     我在执行start-dfs.sh时,报错util.NativeCodeLoader,意思是调用内部库时出错,内部库指的是用JNI调的C库,解决方法是用ldd看看so库链接是否正常,如果so库与当前系统不能匹配,则需要重编源码。还有一种情况,就是环境变量没设对,我这边设置了两个环境变量:

    $ export JAVA_LIBRARY_PATH=/home/hadoop/hadoop/lib/native/
    $ export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    

    之后问题得以解决,根本原因是不同Hadoop版本环境变量名有差别,所以跟着文档做常会出现各种问题,而文档中指定的版本很可能不是主流版本,已经无法下载了。解决方法是跟进脚本,定位具体问题。

    4. 编译Hadoop源码

     如果上述可工作正常,则无需要编译源码。有些情况下,环境与二进制版本不一致,则需要下载源码编译,我下载的也是2.7.5版本的src包。重编时坑也很多。
    源码包解压后,目录中有BUILDING.txt文件,执行其中所有apt-get相关命令。然后编译:

    $ mvn package -Pdist,native -DskipTests –Dtar
    

    mvn是编译工具maven,编译过程非常慢,编出将近4G。编译后生成文件为hadoop-dist/target/hadoop-2.7.5.tar.gz,

    在编译过程中遇到三种报错:
     一种报错是“protoc failure”,用apt-get安装该包后又报错版本不对,最后编译了protobuf-2.5.0包(注意install后要ldconfig,否则还是找不到),得以解决。
     另一个报错是“No plugin descriptor found at META-INF”,我从csdn下载了一个,改了版本号就能用了。
     还有一种报错是连不上marven服务器,于是在设置文件/etc/maven/settings.xml中加入了国内的镜像地址。


    技术文章定时推送
    请关注公众号:算法学习分享

    展开全文
  • Python海量数据处理之_单机优化

    千次阅读 2017-12-20 17:22:15
    数据处理时,可能会遇到数千万以及上亿条数据的情况。一次处理所有数据,会遇到内存不够,计算时间太长等问题。一般的解法是:先拆分,再处理,最后将处理的结果合并。本文将介绍在单机上,只使用Python如何处理大量...

    1. 说明

     数据处理时,可能会遇到数千万以及上亿条数据的情况。一次处理所有数据,会遇到内存不够,计算时间太长等问题。一般的解法是:先拆分,再处理,最后将处理的结果合并(当然数据少的时候不需要这么麻烦)。本文将介绍在单机上,只使用Python如何处理大量数据。

    2. 实例

     本例是天池大数据竞赛中的“淘宝穿衣搭配”比赛,这是一个新人赛,只要注册参赛,即可下载数据。目标是根据商品信息,专家推荐,用户购物信息,计算出最佳商品组合。
     本例中处理的是用户购物信息“表1”:每条记录包含用户号uid,商品号mid,购物时间time。

    uid,mid,time
    4371603,8,20150418
    8034236,8,20150516
    6135829,8,20150405
    

    需要统计每个用户都购买了什么物品,即生成“表2”:记录包含用户号uid,商品组合mids。

    uid,mids
    15  "1795974,1852545,98106,654166"
    20  "2639977,79267"
    

     赛题提供了千万级的购物数据,其中含有百万级的用户,全部load到内存再计算生成新的结构,虽然能运行,但内存占用让机器变得非常慢,普通计算只用到单CPU,我的机器用10个小时才处理了200多万条数据,优化之后半小时以内处理完所有数据。下面看看具体实现。

    3. 切分数据

    (1) 目标

     把数据切分成十份,分别存入文件

    (2) 代码

    user = pd.read_csv("../../data/user_bought_history.txt", sep=" ")
    user.columns = ['uid','mid','time']
    
    dur = len(user)/10
    ifrom = 0
    idx = 0
    while ifrom < len(user):
        ito = ifrom + dur
        data = user[ifrom:ito]
        print("from ", ifrom, "to ", (ito-1), "total", len(data))
        data.to_csv('../../data/user_bought_' + str(idx) + '.csv', index=False)
        ifrom = ito
    idx += 1

    4. 处理数据

    (1) 目标

     用多线程方式处理切分后的数据,将表1转换成表2格式

    (1) 代码

    def do_conv(index):
        path = "../../data/user_bought_" + str(index) + ".csv"
        if not os.path.exists(path):
            return
        user = pd.read_csv(path)
        user['mid']=user['mid'].astype(str)
        grp=user.groupby('uid')
        print(index, len(grp))
    
        user_buy_count_data = pd.DataFrame(columns=['uid','mids'])
        idx=0
        arr_uid=[]
        arr_mid=[]
    
        for name, group in grp:
            mids = ",".join(group['mid'])
            arr_uid.append(name)
            arr_mid.append(mids)
            if idx % 10000 == 0:
                show_info.show_time(str(index) + " : " + str(len(arr_uid)))
            idx+=1
    
        user_buy_count_data['uid']=arr_uid
        user_buy_count_data['mids']=arr_mid
    
        user_buy_count_data.to_csv("../../data/user_" + str(index) + ".csv", index=False)
    
    if __name__ == '__main__':
        param_list = range(0, 11) # 线程参数
        pool = threadpool.ThreadPool(3) # 同时最多开3个线程
        requests = threadpool.makeRequests(do_conv, param_list) 
        [pool.putRequest(req) for req in requests] 
        pool.wait() # 等待所有线程结束

    (3) 技术点

    i. 统一处理数据格式
    从文件中读出的数据默认为int型,用astype函数将整个数据表的mid字段变为str型,相对于每次处理时再转换更节约时间。

    ii. 使用groupby
    groupby函数将数据按不同的uid划分为成多个表格,groupby还带有多种统计功能,相对于用字典方式统计数据效率高得多。

    iii. 多线程
    现在的机器都是多核的,能明显提高计算速度。python中提供了几种不同的多线程方式,这时使用了线程池,它可以控制线程的数量,以免本例中太多线程占用大量内存让机器变慢。使用之前需要安装threadpool库。

    sudo pip install threadpool
    

    5. 合并数据

    (1) 目标

     将转换完的数据合并,当同一个user在两个表中同时出现时,将mids累加在一起。

    (2) 代码

    def do_add(x):
        if x.m == 'nan':
            return x.mids
        if x.mids == 'nan':
            return x.m
        return str(x.mids) + "," + str(x.m)
     
    def do_merge(data, path):
        if not os.path.exists(path):
            return data
        data.columns = ['uid','m']
        ex = pd.read_csv(path)
        print(len(data),len(ex))
        data = pd.merge(data, ex, how='outer')
        data['m']=data['m'].astype(str)
        data['mids']=data['mids'].astype(str)
        data['mids']=data.apply(do_add, axis=1)
        data = data.drop('m',axis=1)
        print(data.head()) 
        return data
    
    data = pd.DataFrame(columns=['uid','mids'])
    for index in range(0, 11):
        data = do_merge(data, "../../data/user_" + str(index) + ".csv")
        show_info.show_time("")
        print("after merge ", index, "len", len(data))
        data.to_csv('../../data/user_all.csv',index=False)

    6. 相关工具

    (1) top命令
     top是linux系统中统计系统资源占用的工具,默认为每秒统计一次,打开后按1键,可看到多核的占用情况。

    7. 总结

     在特征工程和算法的计算过程中,都可以使用先拆分再组合的方式,但前提是切分数据不会造成数据意义的变化。本文介绍了单机处理大数据的优化方式,下篇将介绍用Hadoop集群方案处理海量数据。


    技术文章定时推送
    请关注公众号:算法学习分享

    展开全文
  • Python海量数据处理之_Hadoop&Spark

    千次阅读 2017-12-26 16:27:20
    本篇将介绍Hadoop+Spark的安装配置及如何用Python调用Spark。

    1. 说明

     前篇介绍了安装和使用Hadoop,本篇将介绍Hadoop+Spark的安装配置及如何用Python调用Spark。
     当数据以TB,PB计量时,用单机处理数据变得非常困难,于是使用Hadoop建立计算集群处理海量数据,Hadoop分为两部分,一部分是数据存储HDFS,另一部分是数据计算MapReduce。MapReduce框架将数据处理分成map,reduce两段,使用起来比较麻烦,并且有一些限制,如:数据都是流式的,且必须所有Map结束后才能开始Reduce。我们可以引入Spark加以改进。
     Spark的优点在于它的中间结果保存在内存中,而非HDFS文件系统中,所以速度很快。用Scala 语言可以像操作本地集合对象一样轻松地操作分布式数据集。虽然它支持中间结果保存在内存,但集群中的多台机器仍然需要读写数据集,所以它经常与HDFS共同使用。因此,它并非完全替代Hadoop。
     Spark的框架是使用Scala语言编写的,Spark的开发可以使用语言有:Scala、R语言、Java、Python。

    2. Scala

     Scala是一种类似java的编程语言,使用Scala语言相对来说代码量更少,调用spark更方便,也可以将它和其它程序混用。
     在不安装scala的情况下,启动hadoop和spark,python的基本例程也可以正常运行。但出于进一步开发的需要,最好安装scala。

    (1) 下载scala

    http://www.scala-lang.org/download/
     我下载的是与spark中一致的2.11版本的非源码tgz包

    (2) 安装

    $ cd /home/hadoop #用户可选择安装的文件夹
    $ tar xvzf tgz/scala-2.11.12.tgz
    $ ln -s scala-2.11.12/ scala
    
    在.bashrc中加入
    export PATH=/home/hadoop/scala/bin:$PATH
    

    3. 下载安装Spark

    (1) 下载spark

    http://spark.apache.org/downloads.html
     我下载的版本是:spark-2.2.1-bin-hadoop.2.7.tgz

    (2) 安装spark

    $ cd /home/hadoop #用户可选择安装的文件夹
    $ tar xvzf spark-2.2.1-bin-hadoop2.7.tgz
    $ ln -s spark-2.2.1-bin-hadoop2.7/ spark
    
    在.bashrc中加入
    export SPARK_HOME=/home/hadoop/spark
    export PATH=$SPARK_HOME/bin:$PATH
    

    (3) 配置文件

     不做配置,pyspark可以在本机上运行,但不能使用集群中其它机器。配置文件在$SPARK_HOME/conf/目录下。

    i. 配置spark-env.sh

    $ cd $SPARK_HOME/conf/
    $ cp spark-env.sh.template spark-env.sh
    按具体配置填写内容
    export SCALA_HOME=/home/hadoop/scala
    export JAVA_HOME=/exports/android/jdk/jdk1.8.0_91/
    export SPARK_MASTER_IP=master
    export SPARK_WORKER_MEMORY=1g
    export HADOOP_CONF_DIR=/home/hadoop/hadoop/etc/hadoop/
    

    ii. 设置主从服务器slave

    $ cp slaves.template slaves 
    在其中列出从服务器地址,单机不用设
    

    iii. 设置spark-defaults.conf

    $ cp conf/spark-defaults.conf.template conf/spark-defaults.conf
    按具体配置填写内容
    spark.master                     spark://master:7077
    spark.eventLog.enabled           false
    spark.serializer                 org.apache.spark.serializer.KryoSerializer
    spark.driver.memory              1g
    spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
    

    (4) 启动

     运行spark之前,需要运行hadoop,具体见之前的Hadoop文档

    $ $SPARK_HOME/sbin/start-all.sh
    

     该脚本启动了所有master和workers,在本机用jps查看,增加了Worker和Master,

    4. 命令行调用

     下面我们来看看从程序层面如何使用Spark

    (1) 准备工作

     在使用相对路径时,系统默认是从hdfs://localhost:9000/中读数据,因此需要先把待处理的本地文件复制到HDFS上,常用命令见之前的Hadoop有意思。

    $ hadoop fs -mkdir -p /usr/hadoop
    $ hadoop fs -copyFromLocal README.md /user/hadoop/
    

    (2) Spark命令行

    $ pyspark
    >>> textFile = spark.read.text("README.md")
    >>> textFile.count() # 返回行数
    >>> textFile.first() # 返回第一行
    >>> linesWithSpark = textFile.filter(textFile.value.contains("Spark")) # 返回所有含Spark行的数据集
    

    5. 程序

    (1) 实现功能

     统计文件中的词频

    (2) 代码

     这里使用了spark自带的例程 /home/hadoop/spark/examples/src/main/python/wordcount.py,和之前介绍过的hadoop程序一样,同样是实现的针对key,value的map,reduce,一个文件就完成了,看起来更简徢更灵活,像是hadoop自带MapReduce的加强版。具体内容如下:

    from __future__ import print_function
    
    import sys 
    from operator import add 
    
    from pyspark.sql import SparkSession
    
    if __name__ == "__main__":
        if len(sys.argv) != 2:
            print("Usage: wordcount <file>", file=sys.stderr)
            exit(-1)
    
        spark = SparkSession\
            .builder\
            .appName("PythonWordCount")\
            .getOrCreate()
    
        lines = spark.read.text(sys.argv[1]).rdd.map(lambda r: r[0])
        counts = lines.flatMap(lambda x: x.split(' ')) \
                      .map(lambda x: (x, 1)) \
                      .reduceByKey(add)
        output = counts.collect() # 收集结果
        for (word, count) in output:
            print("%s: %i" % (word, count))
    
        spark.stop()

    (3) 运行

     spark-submit命令在$HOME_SPARK/bin目录下,之前设置了PATH,可以直接使用

    $ spark-submit $SPARK_HOME/examples/src/main/python/wordcount.py /user/hadoop/README.md
    

     参数是hdfs中的文件路径。
     此时访问$SPARK_IP:8080端口,可以看到程序PythonWordCount正在hadoop中运行。

    6. 多台机器上安装Spark以建立集群

     和hadoop的集群设置类似,同样是把整个spark目录复制集群中其它的服务器上,用slaves文件设置主从关系,然后启动$SPARK_HOME/sbin/start-all.sh。正常开启后可以通过网页查看状态:SparkMaster_IP:8080

    7. 参考

    (1) 官方帮助文档,具体见其python部分
    http://spark.apache.org/docs/latest/quick-start.html
    (2) Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程
    https://www.cnblogs.com/purstar/p/6293605.html


    技术文章定时推送
    请关注公众号:算法学习分享

    展开全文
  •  Pig是上层封装了的数据处理工具。  Mahout是基于集群的数据挖掘工具。  Zookeeper是集群管理工具,比如配置一些备用服务器,当重要的服务宕机时,及时补救。  其中黄色部分是hadoop安装包中自带的,...

     本篇是hadoop部分的最后一篇,主要介绍Hadoop家族的常用工具。以及解答学习过程中的一些疑问。

    hadoop家族

     Pig是上层封装了的数据流处理工具。
     Mahout是基于集群的数据挖掘工具。
     Zookeeper是集群管理工具,比如配置一些备用服务器,当重要的服务宕机时,及时补救。
     其中黄色部分是hadoop安装包中自带的,HDFS是文件系统支持,MapReduce是计算支持。
     绿色部分都是向上层提供类似数据库的数据访问,但方式不同。Hive是基于MapReduce的封装,它向上层提供了类似SQL语言的HQL,向下通过MapReduce方式访问数据。HBase在对HDFS层的封装,它本质上是一种key/value系统,主要负责数据存储,解决的是HDFS随机存储方面的问题。

    有了mysql为什么还要Hadoop?

     我们之前介绍搭建比特币矿池的时候,使用zookeeper+kafka+mysql建立集群,其中用mysql建构数据服务器,集群中其它机器通过ip和端口访问其数据,配置方便,速度也不错。既然集群中可以使用mysql存储数据,那为什么还非要用hadoop系列存储工具呢?
     mysql存放的是数据库,而hadoop系列存放的是数据仓库,一方面HDFS针对的是更大规模的数据,另一方面mysql的数据类型只限于数据库,而HDFS比较灵活,可以存储各种类型的数据。

    具体安装

     集群中的计算机软硬件可能有所差异,为了保证一致性,最好使用下载软件包的方式安装,而不用apt-get系列工具。一般的安装过程主要包括:下载,解包,设置环境变量,修改配置文件,启动等几个部分。


    技术文章定时推送
    请关注公众号:算法学习分享

    展开全文
  • 前两篇分别介绍了Hadoop的配置方法和基本原理,本篇将介绍如何让程序借助Hadoop...Hadoop是Java语言实现的,它不仅支持Java,还支持C++,Python等程序的分布计算。下面以Python为例介绍如何使用Hadoop的MapReduce功能。
  •  Hadoop是个分布式的架构,它将海量数据处理工作分配到集群中的多个机器上运行。前篇介绍了Hadoop的安装,在安装过程中会产生一些疑问,比如NameNode是什么东西?本篇就以问题&解答的方式介绍Hadoop的相关概念及其...
  • python海量数据处理

    2012-05-13 17:23:23
    这是用python 来做海量数据处理,也许对喜欢python的人会有用。算法比较基本,大家可以参考
  • 我也⼀一时兴起,想拿Python试试⼑刀,看看Python对于海量数据处理能⼒力如何。⽆无奈在百度和Google输⼊入“Python 海量数据”都⽆无果。可能是国内使⽤用python的不多, ⽤用python处理海量数据的就更少了。不过...
  • 最近看了July的一些关于Java处理海量数据的问题研究,深有感触,链接:...我也一时兴起,想拿Python试试刀,看看Python对于海量数据处理能力如何。无奈在百度和Google输入“P...
  • 【原创】Python处理海量数据的实战研究

    万次阅读 多人点赞 2012-04-12 12:23:39
    最近看了July的一些关于Java处理海量数据的问题研究,深有感触,链接:...我也一时兴起,想拿Python试试刀,看看Python对于海量数据处理能力如何。无奈在百度和Google输入
  • 最近看了July的一些关于Java处理海量数据的问题研究,深有感触,链接:...我也一时兴起,想拿Python试试刀,看看Python对于海量数据处理能力如何。无奈在百度和Google输...
  • 所以说,之所以对很多模型、代码束手无策,其实还是没有掌握好数据处理的“屠龙宝刀”,无法对海量数据进行“庖丁解牛”般的处理。因此,我想以一个别人代码中的一段为例,仔细琢磨文本数据处理的精妙之处,争取能够...
  • 最近越发感觉到限制我对Python运用、以及读懂别人代码的地方,大多是在于对数据的...所以说,之所以对很多模型、代码束手无策,其实还是没有掌握好数据处理的“屠龙宝刀”,无法对海量数据进行“庖丁解牛”般的处...
  • 常规的方法就是先检索出来再逐条复制粘贴,然后通过格式转换软件把上述信息转成excel文件,方便我们进行下一步的数据处理! 但是Python就为我们提供了另一种解决问题的思路,我们可以通过写一个Python爬虫程序,直接...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • hadoop海量数据处理技术详解,包括hdfs、MapReduce、hive、sqoop等相关技术和伪代码,代码是使用python语言写的。
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 互联网点击数据、传感数据、日志文件、具有丰富地理空间信息的移动数据和涉及网络的各类评论,成为了海量信息的多种形式。当数据以成百上千TB不断增长的时候,我们在内部交易系统的历史信息之外,需要一种基于大数据...
  • (给机器学习算法与Python学习加星标,提升AI技能) 目 录 海量数据处理–TopK引发的思考1 三问海量数据处理2 解决Top K 2.1抛出问题:寻找热门查询...
  • 海量数据处理(一)

    千次阅读 2013-03-17 20:29:57
    本文参考了July的教你如何迅速秒杀掉:99%的海量数据处理面试题和quicktest的Python处理海量数据的实战研究。写这篇文章意义是:1)记录自己的经验;2)对大量小文件数据的排序使用了“先Hash,后堆排序”的策略。对...
  • 使用编程python快速处理Excel基础教程,主要学习python基础,通过python快速自动处理海量数据
  • 99%海量数据处理

    2018-01-15 17:29:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • python的大数据处理应用与实现

    千次阅读 2014-02-22 10:58:36
    最近看到一篇关于海量数据处理python实现,具体参(http://blog.csdn.net/quicktest/article/details/7453189#comments)。文章中主要出现的问题是对于海量数据的处理分治这块实现思想不对,改进后采用了直接对...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 今看一博客:Python处理海量数据的实战研究.使用python海量数据中进行数据搜索.链接为:http://blog.csdn.net/quicktest/article/details/7453189  具体处理业务为从百度海量日志数据中提取,某日访问访问百度...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 558
精华内容 223
关键字:

python海量数据处理

python 订阅