pyspark - 是否可以从字符串构造 PySpark 语句?
问题描述
考虑
from pyspark.sql import functions as F
statement = F.when(F.col("col1") < 0.5, F.lit(0.5))
str_statement = str(statement)
产量
"Column<'CASE WHEN (col1 < 0.5) THEN 0.5 END'>"
是否可以采用这样的字符串而不编写自定义解析器重新创建statement
?
解决方案
字符串的 sql 部分可用作expr的参数以重新创建原始列对象。
str_statement = "Column<'CASE WHEN (col1 < 0.5) THEN 0.5 END'>"
import re
sql_expr = re.search("Column<'(.*)'>", str_statement).group(1)
from pyspark.sql import functions as F
statement = F.expr(sql_expr)
推荐阅读
- javascript - 如何将 Shopify 订单数据获取到产品页面
- java - 不遵守 Tomcat 连接池超时
- php - 如何在 laravel 7 中编写自我加入作为我的 php sql 查询
- r - 观星者中具有交互作用的协变量
- android - aframe - ar.js 在移动 android 中不显示模型 gltf
- c++ - 在 glsl opengl 中将嵌套结构数组作为统一传递
- javascript - 将图像转换为黑色和透明(可绘制) - JavaScript/CSS
- swift - 如何更安全地多次调用 Firebase?- 迅速
- google-apps-script - 如何在 Google 表格中获取表单响应以通过数组合并?
- php - 如何让 PHPMailer 在 BlueHost 上工作?