首页 > 解决方案 > 将参数传递给 Spark Insert 脚本

问题描述

这一定是一个简单的,但我坚持了很长一段时间。
我正在尝试将参数传递给我的插入脚本,并且此输出返回 NULL。我在这里做错了什么?我在 Azure Databricks 上写这个,这是一个 Python 笔记本。

spark.sql("CREATE TABLE IF NOT EXISTS DB.RUN_LOG (RunId INT, CreatedDate timestamp, Status string, ErrorDetail string)")
dfMaxRunID = spark.sql("select COALESCE(MAX(RunId),0) MaxRunId from DB.RUN_LOG")
vMaxRunId = dfMaxRunID.first()['MaxRunId']
vInsertRunId = vMaxRunId + 1
vFinal_CurrentTimeStamp = '2019-07-24 12:02:41'
print(vMaxRunId)
print(vInsertRunId)
print(vFinal_CurrentTimeStamp)
spark.sql("INSERT INTO TABLE DB.RUN_LOG values('vInsertRunId','vFinal_CurrentTimeStamp',null,null)")
spark.sql("SELECT * FROM DB.RUN_LOG").show()

在此处输入图像描述

标签: apache-sparkpysparkapache-spark-sqlpyspark-sqlazure-databricks

解决方案


我认为下面的步骤有问题。

vMaxRunId = dfMaxRunID.first()['MaxRunId']

我建议它...

vMaxRunId = dfMaxRunID.select("MaxRunId").first()(0)

然后它会很好地打印一个 ID。


推荐阅读