gpt4 book ai didi

sql - to_json 不能在 spark 中使用 selectExpr

转载 作者:行者123 更新时间:2023-12-04 03:11:46 24 4
gpt4 key购买 nike

我正在阅读数据 block 博客 link我发现内置函数 to_json 有问题。在本教程中的代码中,它返回错误:

org.apache.spark.sql.AnalysisException: Undefined function: 'to_json'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'.

这是否意味着教程中的这种用法是错误的?并且不能在 selectExpr 中使用 udf。我可以做一些事情,比如将这个 to_json 函数注册到默认数据库中吗?

val deviceAlertQuery = notifydevicesDS
.selectExpr("CAST(dcId AS STRING) AS key", "to_json(struct(*)) AS value")
.writeStream
.format("kafka")
.option("kafka.bootstrap.servers", "host1:port1,host2:port2")
.option("toipic", "device_alerts")
.start()

最佳答案

您需要将 to_json 函数导入为

import org.apache.spark.sql.functions.to_json

这应该可以工作,而不是 selectExpr

data.withColumn("key", $"dcId".cast("string"))
.select(to_json(struct(data.columns.head, data.columns.tail:_*)).as("value")).show()

您还必须使用 spark 2.x

我希望这有助于解决您的问题。

关于sql - to_json 不能在 spark 中使用 selectExpr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44696195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com