如何使用5个Python库管理大数据?

来源 | medium

编译 | 武明利

责编 | Carol

出品 | CSDN云计算(ID:CSDNcloud)

如今,Python真是无处不在。尽管许多看门人争辩说,如果他们不使用比Python更难的语言编写代码,那么一个人是否真是软件开发人员,但它仍然无处不在。

Python被用于自动化,管理网站,分析数据和处理大数据。随着数据的增长,我们对其进行管理的方式越来越需要调整。我们不再局限于仅使用关系型数据库。这也意味着现在有更多与这些新系统进行交互的工具,例如Kafka,Hadoop(具体来说是HBase),Spark,BigQuery和Redshift(仅举几例)。

这些系统中的每一个都利用如分布式、柱状结构和流数据之类的概念来更快地向终端用户提供信息。对于更快、更新的信息需求将促使数据工程师和软件工程师利用这些工具。这就是为什么我们想要提供一些Python库的快速介绍来帮助你。

BigQuery

谷歌BigQuery是一个非常受欢迎的企业仓库,由谷歌云平台(GCP)和Bigtable组合而成。这个云服务可以很好地处理各种大小的数据,并在几秒钟内执行复杂的查询。

BigQuery是一个RESTful网络服务,它使开发人员能够结合谷歌云平台对大量数据集进行交互分析可以看看下方另一个例子。

之前写过一篇文章里有说明如何连接到BigQuery,然后开始获取有关将与之交互的表和数据集的信息。在这种情况下,Medicare数据集是任何人都可以访问的开源数据集。

关于BigQuery的另一点是,它是在Bigtable上运行的。重要的是要了解该仓库不是事务型数据库。因此,不能将其视为在线交易处理(OLTP)数据库。它是专为大数据而设计的。所以它的工作与千万字节(PB)级的数据集的处理保持一致。

Redshift and Sometimes S3

接下来是亚马逊(Amazon)流行的Redshift和S3。AmazonS3本质上是一项存储服务,用于从互联网上的任何地方存储和检索大量数据。使用这项服务,你只需为实际使用的存储空间付费。另一方面,Redshift是一个管理完善的数据仓库,可以有效地处理千万字节(PB)级的数据。该服务使用SQL和BI工具可以更快地进行查询。

Amazon Redshift和S3作为一个强大的组合来处理数据:使用S3可以将大量数据上传Redshift仓库。用Python编程时,这个功能强大的工具对开发人员来说非常方便。

这是一个选择使用psycopg2的基本连接的脚本。我借用了Jaychoo代码。但是,这再次提供了有关如何连接并从Redshift获取数据的快速指南。

PySpark

让我们离开数据存储系统的世界,来研究有助于我们快速处理数据的工具。Apache Spark是一个非常流行的开源框架,可以执行大规模的分布式数据处理,它也可以用于机器学习。该集群计算框架主要侧重于简化分析。它与弹性分布式数据集(RDD)配合使用,并允许用户处理Spark集群的管理资源。

它通常与其他Apache产品(例如HBase)结合使用。Spark将快速处理数据,然后将其存储到其他数据存储系统上设置的表中。

有时候,安装PySpark可能是个挑战,因为它需要依赖项。你可以看到它运行在JVM之上,因此需要Java的底层基础结构才能运行。然而,在Docker盛行的时代,使用PySpark进行实验更加方便。

阿里巴巴使用PySpark来个性化网页和投放目标广告——正如许多其他大型数据驱动组织一样。

 

Kafka Python

Kafka是一个分布式发布-订阅消息传递系统,它允许用户在复制和分区主题中维护消息源。

这些主题基本上是从客户端接收数据并将其存储在分区中的日志Kafka Python被设计为与Python接口集成的官方Java客户端。它最好与新的代理商一起使用,并向后兼容所有旧版本。使用KafkaPython编程同时需要引用使用者(KafkaConsumer)和引用生产者(KafkaProducer)。

在Kafka Python中,这两个方面并存。KafkaConsumer基本上是一个高级消息使用者,将用作官方Java客户端。

它要求代理商支持群组API。KafkaProducer是一个异步消息生成器,它的操作方式也非常类似于Java客户端。生产者可以跨线程使用而没有问题,而消费者则需要多线程处理。

Pydoop

让我们解决这个问题。Hadoop本身并不是一个数据存储系统。Hadoop实际上具几个组件,包括MapReduce和Hadoop分布式文件系统(HDFS)。因此,Pydoop在此列表中,但是你需要将Hadoop与其他层(例如Hive)配对,以便更轻松地处理数据。

Pydoop是Hadoop-Python界面,允许与HDFSAPI交互,并使用纯Python代码编写MapReduce工作。

该库允许开发人员无需了解Java即可访问重要的MapReduce功能,例如RecordReader和Partitioner。

对于大多数数据工程师而言,Pydoop本身可能有点太基本了。你们中的大多数人很可能会在Airbow中编写在这些系统之上运行的ETLs。但是,至少对你的工作有一个大致的了解还是很不错的。

从哪里开始呢?

未来几年,管理大数据只会变得越来越困难。由于日益剧增的网络能力——物联网(IoT),改进的计算等等——我们得到的数据将会如洪流般地继续增长。

因此,如果我们想要跟上步伐,,有必要了解一些可用于与这些系统进行交互的数据系统和库。

你有什么看法?欢迎评论区和我们讨论。


推荐阅读:10 个实用功能告诉你,谷歌云(Google Cloud)相对亚马逊云(AWS)有哪些优势?
我是如何用6个月,从0编程经验变成数据科学家的?
爱荷华大选 App 投票酿闹剧的反思:为什么我们在软件工程方面如此糟糕?
愿得一心人:硅谷亿万富豪们的婚姻怎样?有人白首相守七十年
一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码
区块链的阴暗面
真香,朕在看了!猛戳“阅读原文”,填写中国远程办公-调查问卷
发布了297 篇原创文章 · 获赞 1279 · 访问量 134万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览