gpt4 book ai didi

azure - Azure Synapse Notebook 中的 WriteStream(格式为 ('console' )

转载 作者:行者123 更新时间:2023-12-02 23:10:51 24 4
gpt4 key购买 nike

我有一个数据流,我可以使用 pyspark 将其写入内存表,并从那里使用 sql 进行查询:

transformeddata.writeStream\
.format("memory")\
.queryName("transformeddatatable")\
.trigger(processingTime='5 seconds')\
.start()\
.awaitTermination(20) # write the data for 20 seconds into the memory table from the stream

在下一个单元格中我可以查询数据:

%%sql
SELECT * FROM transformeddatatable

效果很好,数据出现在内存表transformeddatatable中。

但是,我无法直接在控制台中显示数据:

transformeddata.writeStream\
.format("console")\
.outputMode("append")\
.trigger(processingTime='5 seconds') \
.option("checkpointLocation", "tmp/checkpoint/streamtoconsole/")\
.start()\
.awaitTermination(20)

一旦 20 秒后终止,控制台返回的唯一内容就是 bool 值 False

在很多在线示例中,上面的代码都有效。我很惊讶我做错了什么 - 这是 Azure 的 Synapse Notebook 的问题吗?它只适用于 Databricks 吗?

最佳答案

您应该考虑两个重要因素:

1 - 您可以使用在 Internet 上打开的 Synapse Datalake 存储帐户或使用选定的网络。如果您的 Synapse Datalake 存储帐户正在使用选定的网络,您将需要使用专用终结点才能连接到 Synapse Datalake。

2 - 您还必须向将执行命令的用户或服务主体授予对 Synapse 存储帐户数据湖的存储 Blob 贡献者 RBAC 权限。

之后您可能就可以运行了。

我的代码如下:

 dfFinal 
.select($"partition", $"enqueuedTime", $"newBody")
.groupBy(window($"enqueuedTime", "1 minute"))
.count()
.writeStream
.outputMode("update")
.option("truncate", "false")
.format("console")
.start()
.awaitTermination()

结果:

 -------------------------------------------
Batch: 0
-------------------------------------------
+------------------------------------------+-----+
|window |count|
+------------------------------------------+-----+
|{2022-10-17 15:47:00, 2022-10-17 15:48:00}|17 |
|{2022-10-17 20:46:00, 2022-10-17 20:47:00}|15 |
|{2022-10-18 22:53:00, 2022-10-18 22:54:00}|5 |
|{2022-10-19 14:36:00, 2022-10-19 14:37:00}|8 |
|{2022-10-19 15:17:00, 2022-10-19 15:18:00}|3 |
|{2022-10-20 18:15:00, 2022-10-20 18:16:00}|8 |
|{2022-10-21 09:41:00, 2022-10-21 09:42:00}|3 |
|{2022-10-17 15:48:00, 2022-10-17 15:49:00}|28 |
|{2022-10-18 16:59:00, 2022-10-18 17:00:00}|7 |
|{2022-10-19 13:57:00, 2022-10-19 13:58:00}|5 |
|{2022-10-18 18:42:00, 2022-10-18 18:43:00}|10 |
|{2022-10-20 14:49:00, 2022-10-20 14:50:00}|11 |
|{2022-10-18 21:47:00, 2022-10-18 21:48:00}|2 |
|{2022-10-19 22:31:00, 2022-10-19 22:32:00}|6 |
|{2022-10-19 16:37:00, 2022-10-19 16:38:00}|13 |
|{2022-10-19 22:35:00, 2022-10-19 22:36:00}|13 |
|{2022-10-20 17:43:00, 2022-10-20 17:44:00}|12 |
|{2022-10-19 14:39:00, 2022-10-19 14:40:00}|4 |
|{2022-10-14 22:26:00, 2022-10-14 22:27:00}|12 |
|{2022-10-18 22:17:00, 2022-10-18 22:18:00}|2 |
+------------------------------------------+-----+
only showing top 20 rows

关于azure - Azure Synapse Notebook 中的 WriteStream(格式为 ('console' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70580903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com