在数据框 API 中使用 spark SQL udf
Posted
技术标签:
【中文标题】在数据框 API 中使用 spark SQL udf【英文标题】:use spark SQL udf in dataframe API 【发布时间】:2017-02-21 20:14:55 【问题描述】:如何使用在 spark 中效果很好的 UDF,例如
sparkSession.sql("select * from chicago where st_contains(st_makeBBOX(0.0, 0.0, 90.0, 90.0), geom)").show
取自http://www.geomesa.org/documentation/user/spark/sparksql.html 通过 spark 的更安全的 scala 数据帧 API?
【问题讨论】:
【参考方案1】:如果你已经创建了一个函数,你可以使用以下方法注册创建的 UDF:
sparksession.sqlContext.udf.register(yourFunction)
我希望这会有所帮助。
【讨论】:
【参考方案2】:Oliviervs 我认为他正在寻找不同的东西。我认为 Georg 想在数据框的 select
api 中按字符串使用 udf。例如:
val squared = (s: Long) =>
s * s
spark.udf.register("square", squared)
df.select(getUdf("square", col("num")).as("newColumn")) // something like this
手头的问题是是否存在一个名为getUdf
的函数,可用于检索通过字符串注册的udf。乔治,对吗?
【讨论】:
;) 实际上我有一个库 (geospark) 并注册了一些函数,但丢弃/不存储sparksession.sqlContext.udf.register
返回的引用,我想知道如何取回它们,即没有依赖随机字符串。以上是关于在数据框 API 中使用 spark SQL udf的主要内容,如果未能解决你的问题,请参考以下文章
如何在数据块中使用 Spark sql 连接 Spark 数据框列
在 pyspark 中使用 pandas_udf 过滤数据框
如何在Spark SQL中查询StringType的1个字段具有json值的数据框
pyspark 从 spark 数据框列创建一个不同的列表并在 spark sql where 语句中使用
Spark SQL Dataframe API - 动态构建过滤条件
在 spark 数据框中运行 UDF 时,不支持获取 org.apache.spark.sql.Column 类型的架构