我们的数据团队负责处理、报告和服务数据。该团队还与其他系统进行数据集成,并创建机器和深度学习模型。

通过这篇文章,我们打算分享我们最喜欢的工具,这些工具被证明与数以千万计的数据一起运行。在真实场景中扩展过程是数据科学新人的热门话题。

R 还是 Python?

嗯…两者!


R是一个 GNU 项目,被认为是一种统计数据语言。它最初于1996年左右在贝尔实验室开发。

Python,由GuidovanRossum于1991年开发,是一种以代码可读性为重点的通用语言。

R 和 Python 都可通过包进行高度扩展。我们主要使用 R 进行数据流程和 ML 项目,以及 Python 执行集成和深度学习项目。

我们的堆栈是 R 与 RStudio,Python 3 与 Jupyter 笔记本。

r-vs-python

R vs Python

RStudio是一个开源 IDE,能够浏览会话期间创建的数据和对象、创建绘图、调试代码等许多选项。它还提供了一个企业就绪的解决方案。

Jupyter也是一个开源 IDE,旨在接口朱莉娅、Python 和 R。今天,它被数据科学家广泛使用来分享他们的分析。最近,谷歌创建了”实验室”,
Jupyter 笔记本环境能够在 Google 云端硬盘中运行。  

您可能还喜欢:
学习 R 的十大理由.

R 是否能够在生产中运行?

是的。我们每天使用 R 运行多个繁重的数据准备和预测模型,每小时和每隔几分钟运行一次。


我们使用
气流,一个由Airbnb作为协调器创建的开源项目。气流是一个令人难以置信的和强大的项目,它允许我们安排流程,分配优先级,创建规则,保持详细的日志等。

对于开发,我们仍然使用以下形式:
Rscript my_awesome_script.R.Airflow 是一个基于 Python 的任务调度程序,它允许我们运行具有许多复杂依赖项的链式进程,监视所有这些进程的当前状态,并在 Slack 出现问题时触发警报。这是运行导入作业以每天使用新数据填充数据仓库的理想选择

访问他们的
网站,以了解更多关于它。

amazon-redshift

亚马逊红移

R 直接连接到亚马逊红移,这要归功于
rauth0 包,它使用
红移工具包,由
巴勃罗·塞贝尔特.


通常,数据从 R 上传到亚马逊红移使用
redshiftTools.此数据可以是普通文件,也可以是 R 会话期间创建的 DataFrame。

我们使用 Python 导入和导出非结构化数据,因为 R 当前没有处理该任务的有用的库。

我们在 R 中尝试了 JSON 库,但结果比在此场景中使用 Python 要糟糕得多。例如,使用
RJSONIO,数据集会自动转换为R DataFrame,几乎无法控制转换的完成方式。这仅对非常简单的 JSON 数据结构有用,与 Python 相比,在 R 中很难操作。

使用 R 进行数据准备

我们有两种方案,数据工程的数据准备和机器学习/AI 的数据准备。


R 的最大优势之一是
tidyverse软件包,这是由许多忍者开发者开发的一组软件包,其中一些在RStudio公司工作。它们提供了通用 API 和使用数据的共享理念。我们将在下一节中介绍一个示例。

tidyverse

德弗利尔和迪迪弗斯

Tidyverse,尤其是 dplyr包,包含一组功能,使探索性数据分析和数据准备相当舒适。

对于处理数据准备和可视化的某些任务,我们使用 funAaaAa。这是我前段时间出版的一本开源书的种子: 数据科学活书。

它包含了我们在生产上部署模型、处理缺失数据、处理异常值等方面的一些良好做法。

R 是否缩放?

的主要优势之一
dplyr是它可以在数据库上运行,这要归功于另一个名称非常相似的包:dbplyr。


这样,我们编写 R 语法 (
dplyr),它是”自动”转换为 SQL 语法,然后在生产中运行。在某些情况下,这些从 R 到 SQL 的转换不会自动进行。对于这种情况,我们仍然能够在 R 中混合执行 SQL 语法

1px;”•航班 %>%

2
group_by%>%
3
摘要延迟=均值dep_delay

生成:

Sql

xxxxxxxxx
1
1
选择"作为延迟"
2
集团 BY月,天

这样, dbplyr 对于在 RAM 中或在外国数据库中处理对象的 R 用户来说,这会使其透明。

没有多少人知道,但许多关键的R片是写在C++(具体地说 ,Rcpp包)。

我们如何分享结果?

主要是在
Tableau. .我们有一些集成
销售队伍.此外,我们确实有一些报告部署在
闪亮,尤其是那些需要复杂的客户互动。


Shiny 允许使用简单的 R 代码构建自定义报表,而无需学习 Javascript、Python 或其他前端和后端语言。通过使用”反应”接口,用户可以输入 Shiny 应用程序可用于响应和重绘任何报表的参数。

与 Tableau、Domo、PowerBI 等工具相比,Shiny 应用的编程特性允许他们执行开发人员在想象中所能设想的几乎任何操作,这在其他工具中可能更加困难或不可能.

rmarkdown

对于临时报告(HTML),我们使用 R标记,这与Jupyter笔记本共享一些功能。它允许使用以仪表板、PDF 报表、基于 Web 的报告和书籍结尾的分析创建脚本!

机器学习/AI

我们使用 R 和 Python。对于机器学习项目,我们主要使用
在R 中的护理包。它为许多机器学习算法提供了高级接口,以及数据准备、模型评估和超调调参数中的常见任务。


对于深度学习,我们使用 Python,特别是
喀纳斯与
紧张作为后端。
Keras 是构建复杂神经网络的 API。通过在云上(如 AWS)等服务中对其进行培训,这些功能可以轻松扩展。

现在,我们也在做一些实验
针对 NLP 问题的 斋点库。

总结!

开源语言引领数据路径。R 和 Python 拥有强大的社区,并且有免费和一流的资源需要学习。


在这里,我们希望共享将 R 用于数据工程任务和我们最喜欢的 R 和 Python 库的不太常见的方法,重点是共享结果,并解释我们每天执行的一些实践。

我们认为数据项目中最重要的阶段是数据分析和数据准备

我们希望这篇文章鼓励你尝试一些建议的技术,并动摇您的数据项目!

找到我
LinkedIn和
推特.有问题吗?把它们留在评论中。

进一步阅读

  • 与喀纳斯深度学习的第一步。
  • 张力流 vs PyTorch vs 喀纳斯 NLP.
  • 使用 R 处理不平衡的数据。
Comments are closed.