无法使用 Pyspark 中的更新将字符串插入增量表
Posted
技术标签:
【中文标题】无法使用 Pyspark 中的更新将字符串插入增量表【英文标题】:Can't insert string to Delta Table using Update in Pyspark 【发布时间】:2020-05-18 17:48:49 【问题描述】:我遇到了一个问题,它不允许我使用更新和返回插入字符串。我正在运行 6.5(包括 Apache Spark 2.4.5、Scala 2.11),但它也不适用于 6.4 运行时。
我有一个包含以下列的增量表,按创建日期分区
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"
它插入很好。搜了一下,没看到类似的问题,有什么建议吗?我错过了什么明显的东西吗?
【问题讨论】:
【参考方案1】:看起来你的 python 代码中matchName
后面有一个额外的空格
【讨论】:
以上是关于无法使用 Pyspark 中的更新将字符串插入增量表的主要内容,如果未能解决你的问题,请参考以下文章