dataframe - 在 SPARK Sql/Pyspark 中将变量值作为列名传递?
问题描述
我是 PYSPARK/SPARKSQL 的初学者,我有如下要求,我有一个如下配置表(DataFrame:Config),配置:
| 数据框 | Col1 | Col2 |Col3 |:---- |:------:| -----:|-----: | 员工 | 姓名1 |姓名2 |地址| 职位 | 司法部 | 角色 |出生日期
我已经迭代了上述数据框并将值分配给变量,并且需要将变量值作为列传递给另一个 DF,如下所示。
例子,
First_Name = Config.alias('a').select('a.col1).filter("Rownumber = '" + str(i) + "'" ).first()[0]
print("First_Name :" + First_Name )
Last_Name = Config.alias('a').select('a.col2).filter("Rownumber = '" + str(i) + "'" ).first()[0]
print("Last_Name :" + Last_Name )
现在 First_Name, Last_Name 变量保存 Dataframe Emp 下面的列名,
需要如下数据框,
DF =Emp.select (col(‘Name1’),col(‘Name2),col(‘Address))
解决方案
不确定我是否正确理解了这个问题。但据我了解,您从相应的数据帧中获取了 first_name 和 last_name ,并且您希望将其与DFcol
中的函数一起使用。 dataframe
如果是这种情况,您可以使用 python 的 str.format 如下:
DF = emp.select(col("{}".format(First_Name)),
col("{}".format(Last_Name)))
推荐阅读
- gradle - ML Gradle task.Server.Eval.Task 使用 xquery 设置变量
- nativescript - 为什么我不能更新到最新版本的 nativescript-theme (nativescript)
- r - 获取数据框列的最后一个字符/编号
- python-3.x - 创建具有周期性重复值的匹配标签
- ionic-framework - 离子框架 Braintree 集成
- javascript - 为什么'load'的EventListener在身体底部工作,而不是在顶部?
- javascript - 使用自定义事件呈现模板未正确显示 Fullcalendar 的事件
- reactjs - 使用反应路由器切换到结果组件“onSubmit”在反应钩子中的搜索表单
- tortoisesvn - 在 TortoiseSVN 中添加未版本控制的文件作为新版本
- python - 我正在尝试使用列表在 python IDLE 中选择一个字符。但是,它要么循环输入,要么冻结窗口,所以我必须重新开始