Spark 结构化流 Kinesis 数据源

Posted

技术标签:

【中文标题】Spark 结构化流 Kinesis 数据源【英文标题】:Spark Structured Streaming Kinesis Data source 【发布时间】:2018-08-26 11:13:19 【问题描述】:

是否可以将 Kinesis 流用作 Spark 结构化流的数据源?我找不到任何可用的连接器。

【问题讨论】:

【参考方案1】:

Qubole 正好有一个 kinesis-sql 库。

https://github.com/qubole/kinesis-sql

然后您可以使用类似于任何其他 Spark Structured Streaming 源的源:

val source = spark
   .readStream
   .format("kinesis")
   .option("streamName", "spark-source-stream")
   .option("endpointUrl", "https://kinesis.us-east-1.amazonaws.com")
   .option("awsAccessKeyId", [YOUR_AWS_ACCESS_KEY_ID])
   .option("awsSecretKey", [YOUR_AWS_SECRET_KEY])
   .option("startingPosition", "TRIM_HORIZON")
   .load

【讨论】:

这还没有生产,但你可以使用它。此外,我建议通过 KCL 使用 kinesis 流,一旦您获得 Dstreams[ArrayByte] 类型,将其转换为数据帧并加载到临时视图或表中。然后,您可以轻松地在该表上应用 sql 查询。 @AmanMundra 你试过 kcl 方法成功了吗?我们遇到了 quobole jar 的问题,因为它不断写入空文件

以上是关于Spark 结构化流 Kinesis 数据源的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS Kinesis 收集流数据

spark流检查点恢复非常非常慢

Spark Streaming的工作机制

读取 Amazon Kinesis Firehose 流写入 s3 的数据

Spark之SparkStreaming案例

13.spark streaming之快速入门