Azure Databricks 到事件中心

Azure Databricks to Event Hub

我是 Databricks 的新手。所以,请原谅我。这是我的要求

  1. 我在 Azure DataLake 中存储了数据
  2. 根据要求,我们只能通过 Azure Databricks notebook 访问数据
  3. 我们必须从某些表中提取数据,与其他表连接,聚合
  4. 将数据发送到事件中心

我该如何执行此操作 activity。我假设没有一次性过程。我打算创建一个笔记本并 运行 通过 Azure 数据工厂。在 Blob 中抽取数据,然后使用 .Net 将其发送到事件中心。但是,从 Azure 数据工厂我们只能 运行 Azure Databricks notebook 不能存储在任何地方

Azure Databricks 支持将 Azure 事件中心作为源和接收器。了解 Structured Streaming - 它是 Apache Spark 中的流处理引擎(也可在 Azure Databricks 中使用)

创建一个笔记本来完成所有转换(连接、聚合...)- 假设您正在对 Azure 事件中心进行批量写入。

使用 Scala

val connectionString = "Valid EventHubs connection string."
val ehWriteConf = EventHubsConf(connectionString)
df.select("body")
.write
.format("eventhubs")
.options(ehWriteConf.toMap)    
.save()

如果您的查询是流式传输,请将 .write 替换为 .writeStream

使用 PySpark

ds = df \
  .select("body") \
  .writeStream \
  .format("eventhubs") \
  .options(**ehWriteConf) \
  .option("checkpointLocation", "///output.txt") \
  .start()

使用 Azure 事件中心时需要考虑更多关于分区的事情 - 它是可选的,您可以单独发送正文(这将执行循环模型)

更多信息here
PySpark 版本 here