我正在学习使用Databricks进行结构化流传输,并且在DataStreamWriter控制台模式下苦苦挣扎。
我的程序:
尽管该程序在选择使用文件接收器时有效(批处理被附加到“ result_dir”中的文本格式文件中),但是选择“控制台接收器”时看不到显示任何内容。
此外,当我在本地计算机上运行该程序的等效版本(安装了Spark)时,它对于文件接收器和控制台接收器都可以正常工作。
我的问题是:
非常感谢您!
最好的问候, 玉米片
globalArray
第一句话。
第二句话。
第三句话。
第四句话。
第五句话。
第六句话。
答案 0 :(得分:0)
“如何让这个程序在使用 Databricks 时输出到控制台接收器并显示结果?”
最简单的方法是使用 Databricks 提供的 display
。您可以按如下所示使用它:
# Cell 1
rateDf = (spark.readStream
.format("rate")
.option("rowsPerSecond", 1)
.option("numPartitions", 1)
.load())
# Cell 2
display(rateDf, streamName="rate_stream")
控制台接收器在 Databricks 中不起作用,因为您希望它在您的 IDE 中运行或在将其提交到集群时运行。相反,您可以使用 memory
格式并使用 %sql
查询查询数据:
inputUDF.writeStream \
.format("memory") \
.trigger(processingTime = "10 seconds") \
.queryName("inputUDF_console") \
.outputMode("append") \
.start()
在另一个 Databricks 单元中,您可以通过查询 queryName
中给出的表来查看数据:
%sql select * from inputUDF_console