scala代码,通过使用小部件传递动态值来读取parquet文件

mwngjboj  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(416)

我有像process/yyyy/mm/dd这样的文件夹结构,我需要编写一个scala代码来读取这些文件,直到process/yyyy,并且我使用小部件动态地传递月份和日期。
我使用小部件动态地传递mm和dd
代码val readdf=spark.read.format(“parquet”).option(“header”,“true”).load(“mnt/pnt/process/yyyy”)

cwxwcias

cwxwcias1#

您可以使用以下代码从小部件获取月份,然后创建从中加载的路径:

dbutils.widgets.text("Month", "1")

val widget_month = dbutils.widgets.get("Month").toInt
val path_month = "%02d".format(widget_month)
val pathToReadFrom = s"/mnt/pnt/process/yyyy=2020/mm=${path_month}"

databricks输出显示:

widget_month: Int = 1
path_month: String = 01
pathToReadFrom: String = /mnt/pnt/process/yyyy=2020/mm=01

现在,如果希望通过小部件将参数传递给笔记本,可以使用笔记本工作流从另一个笔记本运行它。这是该链接中的一个示例:

dbutils.notebook.run("notebook-name", 60, {"argument": "data", "argument2": "data2", ...})

相关问题