Scio:Apache Beam和Google Cloud Dataflow的Scala API

Posted 过往记忆大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scio:Apache Beam和Google Cloud Dataflow的Scala API相关的知识,希望对你有一定的参考价值。

我们都知道,目前 Apache Beam 仅仅提供了 Java 和 Python 两种语言的 API,尚不支持 Scala 相关的 API。基于此全球最大的流音乐服务商 Spotify 开发了 Scio ,其为 Apache Beam 和 Google Cloud Dataflow 提供了Scala API,使得我们可以直接使用 Scala 来编写 Beam 应用程序。Scio 开发受 Apache Spark 和 Scalding 的启发,目前最新版本是 Scio 0.3.0,0.3.0版本之前依赖于 Google Cloud Dataflow SDK,0.3.0及未来版本会直接依赖于 Apache Beam。Scio 目前使用 Apache License, Version 2.0 许可证发布,源代码在 https://github.com/spotify/scio


主要功能


  • Scala API 与 Spark 和 Scalding 的核心 API 非常类似

  • 统一 batch 和 streaming 编程模型

  • 与 Google Cloud 产品集成,包括:云存储,BigQuery,Pub/Sub,Datastore,Bigtable

  • 支持 HDFS、JDBC、TensorFlow TFRecords、Cassandra 以及 Elasticsearch I/O

  • 使用 Scio REPL 支持交互模式

  • 可以与AlgebirdBreeze整合

  • 分布式缓存

  • Pipeline orchestration with Scala Futures

使用


前面说了 Scio 开发受 Apache Spark 和 Scalding 的启发,所以如果我们使用 Scio API 来编写一个 WordCount 程序看起来和使用 Spark 来编写很类似。首先我们需要引入相关依赖:

然后我们的 Scio API 版的 WordCount 可以这样来编写:

Scio:Apache Beam和Google Cloud Dataflow的Scala API

编写完之后,我们可以

注意:和我们之前见到的不一样,--input 参数匹配的文件必须写到文件那层,也就是需要使用 gs//bucket/path/part-*.txt而不是gs://bucket/path
如果 
--runner 没指定,默认的是 DirectRunner 。

更多关于 Scio 的使用,请参见官方文档 https://github.com/spotify/scio/wiki

猜你喜欢

0、回复 电子书 获取 所有可下载的电子书

1、

2、

3、

4、

5、

6、

7、

8、

9、

10、

11、更多大数据文章欢迎访问https://www.iteblog.com及本公众号(iteblog_hadoop)
12、Flink中文文档:http://flink.iteblog.com

以上是关于Scio:Apache Beam和Google Cloud Dataflow的Scala API的主要内容,如果未能解决你的问题,请参考以下文章

Apache Beam 不会将文件写入本地环境或 Google 存储

Why Apache Beam? A data Artisans perspective

确认 Apache Beam 上的 Google Pub/Sub 消息

使用 Python / Apache Beam 进行 Google Cloud Storage 并发控制?

Apache Beam/Google Dataflow - 将数据从 Google Datastore 导出到 Cloud Storage 中的文件

如何在Apache Beam / Google Dataflow中使用ParseJsons?