Databricks:结构流数据分配和显示
Databricks : structure stream data assignment and display
我在数据块笔记本 (python) 中有以下流代码。
from pyspark.sql import SparkSession
from pyspark.sql.functions import explode
from pyspark.sql.functions import split
spark = SparkSession \
.builder \
.appName("MyTest") \
.getOrCreate()
# Create a streaming DataFrame
lines = spark.readStream \
.format("delta") \
.table("myschema.streamTest")
在笔记本2中,我有
def foreach_batch_function(df, epoch_id):
test = df
print(test['simplecolumn'])
display(test['simplecolumn'])
test['simplecolumn'].display
lines.writeStream.outputMode("append").foreachBatch(foreach_batch_function).format('console').start()
当我执行上面的代码时,我在哪里可以看到 .display 函数的输出?我查看了集群驱动程序日志,但没有看到任何内容。除了成功初始化和执行的流外,我在执行时也看不到笔记本本身的任何内容。我确实看到数据框参数数据显示在控制台中,但我试图查看分配测试是否成功。
我正在尝试将这种操作作为时间序列操作的先驱,用于实时模型评分的小批量和 python - 但我正在努力在结构化流中获得正确的基础知识世界。工作模型运行但每 10-15 分钟执行一次。我想通过流使其实时,因此这个问题。
您将不同的东西混合在一起 - 我建议阅读 structured streaming documentation or chapter 8 of Learning Spark, 2ed book (freely available from here) 的初始部分。
您可以直接在流上使用 display
function,例如(使用 checkpointLocation
和 trigger
参数效果更好,如文档中所述):
display(lines)
关于评分——通常是通过定义用户定义的函数并将其作为数据帧的 select
或 withColumn
函数应用于流来完成的。最简单的方法是在 MLflow 注册表中注册一个模型,然后使用内置函数加载模型,例如:
import mlflow.pyfunc
pyfunc_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri)
preds = lines.withColumn("predictions", pyfunc_udf(params...))
查看 notebook 中的示例。
我在数据块笔记本 (python) 中有以下流代码。
from pyspark.sql import SparkSession
from pyspark.sql.functions import explode
from pyspark.sql.functions import split
spark = SparkSession \
.builder \
.appName("MyTest") \
.getOrCreate()
# Create a streaming DataFrame
lines = spark.readStream \
.format("delta") \
.table("myschema.streamTest")
在笔记本2中,我有
def foreach_batch_function(df, epoch_id):
test = df
print(test['simplecolumn'])
display(test['simplecolumn'])
test['simplecolumn'].display
lines.writeStream.outputMode("append").foreachBatch(foreach_batch_function).format('console').start()
当我执行上面的代码时,我在哪里可以看到 .display 函数的输出?我查看了集群驱动程序日志,但没有看到任何内容。除了成功初始化和执行的流外,我在执行时也看不到笔记本本身的任何内容。我确实看到数据框参数数据显示在控制台中,但我试图查看分配测试是否成功。
我正在尝试将这种操作作为时间序列操作的先驱,用于实时模型评分的小批量和 python - 但我正在努力在结构化流中获得正确的基础知识世界。工作模型运行但每 10-15 分钟执行一次。我想通过流使其实时,因此这个问题。
您将不同的东西混合在一起 - 我建议阅读 structured streaming documentation or chapter 8 of Learning Spark, 2ed book (freely available from here) 的初始部分。
您可以直接在流上使用 display
function,例如(使用 checkpointLocation
和 trigger
参数效果更好,如文档中所述):
display(lines)
关于评分——通常是通过定义用户定义的函数并将其作为数据帧的 select
或 withColumn
函数应用于流来完成的。最简单的方法是在 MLflow 注册表中注册一个模型,然后使用内置函数加载模型,例如:
import mlflow.pyfunc
pyfunc_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri)
preds = lines.withColumn("predictions", pyfunc_udf(params...))
查看 notebook 中的示例。