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 支持交互模式
可以与Algebird和Breeze整合
分布式缓存
Pipeline orchestration with Scala Futures
使用
前面说了 Scio 开发受 Apache Spark 和 Scalding 的启发,所以如果我们使用 Scio API 来编写一个 WordCount 程序看起来和使用 Spark 来编写很类似。首先我们需要引入相关依赖:
然后我们的 Scio API 版的 WordCount 可以这样来编写:
编写完之后,我们可以
注意:和我们之前见到的不一样,--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、
以上是关于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 中的文件