我正在阅读数据库博客link
我发现内置函数 col3
10
20
30
有问题。
在本教程中引用的代码中,它返回错误:
org.apache.spark.sql.AnalysisException:未定义的函数:'to_json'。此函数既不是已注册的临时函数,也不是在数据库'default'中注册的永久函数。
这是否意味着本教程中的这种用法是错误的?并且 col1 col2 col3
1 20 10
34 78 20
67 89 30
中没有可以使用udf。我可以将此to_json
函数注册到默认数据库吗?
selectExpr
答案 0 :(得分:1)
您需要将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
我希望这有助于解决您的问题。
答案 1 :(得分:0)
基于我从邮件列表中获取的信息。此函数不会从spark 2.2.0添加到SQL中。这是提交链接:commit。 希望这会有所帮助。 THX Hyukjin Kwon和Burak Yavuz。