无法在Pyspark中使用更新插入字符串到Delta表。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在Pyspark中使用更新插入字符串到Delta表。相关的知识,希望对你有一定的参考价值。
我遇到了一个问题,它不允许我使用 update 和 returns 插入一个字符串。我正在运行6.5(包括Apache Spark 2.4.5,Scala 2.11),但在6.4的运行时也不能工作。
我有一个delta表,表的列数如下,按创建日期分区。
ID string
, addressLineOne string
, addressLineTwo string
, addressLineThree string
, addressLineFour string
, matchName string
, createdDate
我正在运行一个过程,点击API并更新matchName列。
使用Pyspark,如果它这样做,只是为了测试写的。
deltaTable.update(col("ID") == "ABC123", "matchName ": "example text")
我得到以下错误。
Py4JJavaError: An error occurred while calling o1285.update.
: org.apache.spark.sql.catalyst.analysis.UnresolvedException: Invalid call to dataType on unresolved object, tree: 'example
如果我试着把字符串改成123,就能顺利更新了
deltaTable.update(col("ID") == "ABC123", "matchName ": "123")
然而,如果我使用sql并做
UPDATE myTable SET matchName = "Some text" WHERE ID = "ABC123"
插得很好。我搜索了一下,没有看到类似的问题,有什么建议吗?我是不是漏掉了什么明显的问题?
答案
看起来你在 matchName
在你的python代码中
以上是关于无法在Pyspark中使用更新插入字符串到Delta表。的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 PySpark 插入 SQL,但可以在 SQL 中使用
Oracle MERGE 重写为 PySpark。如果为空 - 更新,否则 - 插入