大佬教程收集整理的这篇文章主要介绍了如何在 PySpark 中获取 Column 对象的 SQL 命令?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从 PySpark 中的 column
对象获取 sql 命令。
我知道这是一个奇怪的用例,但我想在表达式中使用占位符进行模板化。
例如我有一个 column
from pyspark.sql.functions import col,expr
my_col = col("example_column_{placeholder}").isin("A","B")
我想得到
sql = "(example_column_{placeholder} IN ('A','B'))"
这样我以后就可以format
模板化的 sql 字符串。
问题是 PySpark 中唯一的选择是
sql = my_col._jc.toString()
哪个返回
print(sql)
# (example_column_{placeholder} IN (A,B))
这不是正确的 sql 命令(A
和 B
周围缺少撇号)
因此当我跑步时
df.withcolumn("my_col",expr(my_col._jc.toString().format(placeholder="value")))
它因 AnalysisException: cAnnot resolve 'A' given input columns
而崩溃
即使 A
应该是字符串文字而不是列。
我知道 col._jc.toString()
可能不应该用于获取 sql。在 Scala 中你可以这样做
import org.apache.spark.sql.column
import org.apache.spark.sql.functions._
val my_col: column = col("example_column_{placeholder}").isin("A","B")
my_col.exPR.sql
有没有办法从 PySpark 访问这个方法?或者以某种方式解决这个问题?
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何在 PySpark 中获取 Column 对象的 SQL 命令?全部内容,希望文章能够帮你解决如何在 PySpark 中获取 Column 对象的 SQL 命令?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。