流终止时,事件中心到databricks错误?

时间:2019-11-07 15:40:46

标签: pyspark azure-eventhub azure-databricks

Azure Databricks使用以下代码从事件中心读取数据时,我一直在尝试建立概念证明:

connectionString = "Endpoint=sb://mystream.servicebus.windows.net/;EntityPath=theeventhub;SharedAccessKeyName=event_test;SharedAccessKey=mykeygoeshere12345"

ehConf = {
  'eventhubs.connectionString' : connectionString
}

df = spark \
  .readStream \
  .format("eventhubs") \
  .options(**ehConf) \
  .load()

readEventStream = df.withColumn("body", df["body"].cast("string"))
display(readEventStream)

我正在使用azure_eventhubs_spark_2_11_2_3_6.jar包作为推荐的here,但我已经尝试了最新版本并不断收到消息

ERROR : Some streams terminated before this command could finish!

我使用了databricks运行时版本6.1,并将其回滚到5.3,但似乎无法启动并运行它。我有一个将数据发送到事件中心的Python脚本,我只是看不到任何东西吗? 是包装吗?还是我做错了什么?

更新:我正在从下载的JAR文件中加载库。我删除了它,然后从Maven存储库中获得了它。经过测试后可以正常工作

1 个答案:

答案 0 :(得分:0)

它与以下配置完美配合:

Databrick运行时: 5.5 LTS(包括Apache Spark 2.4.3,Scala 2.11)

Azure EventHub库:com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.13

使用上述配置,能够从Azure Eventhubs中获取流数据。

enter image description here

参考: Integrating Apache Spark with Azure Event Hubs

希望这会有所帮助。