Apache spark pyspark'有反函数吗;什么是expr?

Apache spark pyspark'有反函数吗;什么是expr?,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我知道有一个函数叫做spark sql,它可以将您的spark sql转换为一个spark列,并使用该表达式: >>> from pyspark.sql import functions as F >>> F.expr("length(name)") Column<b'length(name)'> 我发现Column的\uuu repr\uuuu让您了解了Column表达式是什么(比如Column),但它似乎无法以编程方式使

我知道有一个函数叫做spark sql,它可以将您的spark sql转换为一个spark列,并使用该表达式:

>>> from pyspark.sql import functions as F 
>>> F.expr("length(name)")
Column<b'length(name)'>

我发现Column的
\uuu repr\uuuu
让您了解了Column表达式是什么(比如
Column
),但它似乎无法以编程方式使用,而无需一些黑客解析和字符串替换。

在scala中,我们可以使用
Column#expr
获得sql类型表达式,如下所示-

length($“entities”).expr.toString()
//长度('实体)
在Pypark-

print(F.length(“name”).\u jc.expr.container)
#长度(名称)

您可以指定将列转换为sql表达式的动机吗?@SomeshwarKale我正在构建一个工具,使分析人员能够编写一些spark查询-这些查询存储在spark sql中。但是直接以字符串形式编写sql并不好-没有语法检查。因此,他们最好先编写pyspark代码,然后转换为将其插入sql。对于某些函数,我会得到所有大写字符串,如
F.signum
给我
signum
。但是由于pyspark sql不区分大小写,所以一切都很好!
>>> F.inverse_expr(F.length(F.col('name')))
'length(name)'