有一个问题在于,我想让这个功能通用一些,即我的 df 可能不是这样的,字段名也可能是另外一些,如果我有一个列表装有字段名,还有一个 df ,我怎样完成上述操作呢
时间: 2024-10-27 21:06:26 浏览: 39
如果你想创建一个通用的方法来处理这种情况,你可以使用`pyspark.sql.Column`对象和`expr()`函数,它可以根据字段名称动态构建SQL表达式。下面是一个示例:
```python
def convert_to_list(df, field_names):
# 创建一个空列表用于存储结果
result_list = []
for field_name in field_names:
# 使用expr()和列名动态构建SQL查询
value_list = df.selectExpr(f"{field_name}").rdd.flatMap(lambda row: [row[field_name]]).collect()
result_list.extend(value_list)
return result_list
# 示例:假设df是一个DataFrame,field_names是一个包含字段名称的列表
fields_to_convert = ['EQP_PM_MARK', 'ANOTHER_FIELD']
converted_list = convert_to_list(df, fields_to_convert)
```
这个函数接受一个DataFrame和一个字段名列表作为输入,然后遍历每个字段,动态地从DataFrame中提取每个字段的值,并将其添加到结果列表中。
阅读全文
相关推荐


















